100 messaggi dal 28 febbraio 2006
buongiorno ho una tabella con delle quantità di tipo Float che possono avere valori interi , devo esportare i dati con un formatto a hoc perchè deve avere 9 digit esempio nel campo ho 69 deve diventare 000000069 , c'è modo di modificare la mia vista per avere questo format?
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
puoi effettuare un padding ad esempio similarmente a
SET NOCOUNT ON;
DECLARE @t table (
  Valore float
  );
INSERT INTO @t
  VALUES ( 69 ), ( 0.1234 ), ( 1 ), ( 123456 );

DECLARE @maxPad int = 9;
SELECT RIGHT(REPLICATE('0', @maxPad) + CONVERT(varchar(20), t.[Valore]), @maxPad) AS [StringdPaddedValue]
  FROM @t t;
--<----------
StringdPaddedValue
--------------------
000000069
0000.1234
000000001
000123456



ovviamente il valore proiettato NON sara' piu' un valore numerico ma un varchar...

per mia curiosita', sicuro sia necessario usare un float? :D
salutoni
--
Andrea
Modificato da Andrea Montanari il 19 giugno 2020 10:36 -

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
66 messaggi dal 09 febbraio 2005
.... per la serie "non ho proprio niente di meglio da fare" :)

DECLARE @t table (
  Valore float
  );
INSERT INTO @t
  VALUES ( -69 ), ( -00.1234 ), ( 1 ), ( 123456 );

DECLARE @maxPad int = 9;

SELECT 
      iif(t.valore<0,'-','')
    + replace(    
             STR(
              ABS(t.Valore), @maxPad-len(iif(t.valore<0,'-','')),
                              iif(
                       parsename(t.valore,2) is null, 0 , len(parsename(t.valore,1))
                     ) 
          )
     ,' ' ,'0')

Modificato da sspintux il 19 giugno 2020 11:54 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.