STR (Transact-SQL)
Vengono restituiti dati di tipo carattere convertiti da dati di tipo numerico.
Sintassi
STR (float_expression [ , length [ ,decimal ] ] )
Argomenti
float_expression
Espressione del tipo di dati numerico approssimato (float) con un separatore decimale.length
Lunghezza totale, che include il separatore decimale, il segno, le cifre e gli spazi. Il valore predefinito è 10.decimal
Numero di posizioni a destra del separatore decimale. decimal deve essere minore o uguale a 16. Se decimal è maggiore di 16, il risultato verrà troncato dopo la sedicesima posizione a destra del separatore decimale.
Tipi restituiti
varchar
Osservazioni
I valori dei parametri length e decimal della funzione STR devono essere positivi. Il numero viene arrotondato a un intero per impostazione predefinita o quando il parametro decimal è 0. La lunghezza specificata deve essere maggiore o uguale alla parte intera del numero (a sinistra del separatore decimale) più il segno del numero, se disponibile. Un argomento di tipo float_expression breve viene allineato a destra in base alla lunghezza specificata, mentre un argomento di tipo float_expression lungo viene troncato in base al numero di cifre decimali specificato. Ad esempio, il risultato restituito da STR(12**,10) sarà 12 che verrà allineato a destra nel set di risultati. STR(1223,**2) tronca invece il set di risultati a **. Le funzioni stringa possono essere nidificate.
[!NOTA]
Per eseguire la conversione in dati Unicode, utilizzare STR in una funzione di conversione CONVERT o CAST.
Esempi
Nell'esempio seguente un'espressione composta da cinque cifre e un separatore decimale viene convertita in una stringa di caratteri con sei posizioni. La parte frazionaria del numero viene arrotondata a una cifra decimale.
SELECT STR(123.45, 6, 1);
GO
Set di risultati:
------
123.5
(1 row(s) affected)
Quando l'espressione supera la lunghezza specificata, la stringa restituisce ** per la lunghezza specificata.
SELECT STR(123.45, 2, 2);
GO
Set di risultati:
--
(1 row(s) affected)
Quando nella funzione STR i dati numerici sono nidificati, il risultato corrisponde comunque a dati di tipo carattere nel formato specificato.
SELECT STR (FLOOR (123.45), 8, 3;)
GO
Set di risultati:
--------
123.000
(1 row(s) affected)