STR (Transact-SQL)

Se aplica a: síSQL Server (todas las versiones admitidas) SíAzure SQL Database SíInstancia administrada de Azure SQL síAzure Synapse Analytics síAlmacenamiento de datos paralelos

Devuelve datos de caracteres convertidos de datos numéricos. Los datos de caracteres están justificados a la derecha, con una longitud y precisión decimal especificadas.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQL

Sintaxis

STR ( float_expression [ , length [ , decimal ] ] )  

Nota

Para ver la sintaxis de Transact-SQL para SQL Server 2014 y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

float_expression
Es una expresión de tipo de datos numéricos aproximados (float) con separador decimal.

length
Es la longitud total. Ésta incluye el separador decimal, el signo, los dígitos y los espacios. El valor predeterminado es 10.

decimal
Es el número de posiciones a la derecha del separador decimal. decimal debe ser inferior o igual a 16. Si el parámetro decimal es mayor que 16, el resultado se trunca en dieciséis posiciones a la derecha del separador decimal.

Tipos de valor devuelto

varchar

Observaciones

Si se especifican, los valores de los parámetros length y decimal de STR deben ser positivos. El número se redondea a un entero de forma predeterminada o si el parámetro decimal es 0. La longitud especificada debe ser mayor o igual que la parte del número situada delante del separador decimal más el signo del número (si lo hay). Una float_expression corta se justifica a la derecha según la longitud especificada y una float_expression larga se trunca según el número de decimales especificados. Por ejemplo, STR(12, 10) da como resultado 12. Se justifica a la derecha en el conjunto de resultados. Pero STR(1223, 2) trunca el conjunto de resultados a **. Las funciones de cadena se pueden anidar.

Nota

Para convertir a datos Unicode, utilice STR en una función de conversión CONVERT o CAST.

Ejemplos

En el ejemplo siguiente se convierte una expresión formada por un máximo de cinco dígitos y un separador decimal en una cadena de caracteres de seis posiciones. La parte fraccionaria del número se redondea a un lugar decimal.

SELECT STR(123.45, 6, 1);  
GO  

El conjunto de resultados es el siguiente:

------  
 123.5  
  
(1 row(s) affected)  

Cuando la expresión excede la longitud especificada, la cadena devuelve ** para esa longitud.

SELECT STR(123.45, 2, 2);  
GO  

El conjunto de resultados es el siguiente:

--  
**  
  
(1 row(s) affected)  

Incluso cuando se anidan datos numéricos en STR, el resultado son datos de tipo carácter con el formato especificado.

SELECT STR (FLOOR (123.45), 8, 3);
GO  

El conjunto de resultados es el siguiente:

--------  
 123.000  
  
(1 row(s) affected)  

Consulte también

CAST y CONVERT (Transact-SQL)
FORMAT (Transact-SQL)
Funciones de cadena (Transact-SQL)