STR (Transact-SQL)

Vengono restituiti dati di tipo carattere convertiti da dati di tipo numerico.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

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)