STR (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

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.

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)
String Functions (Transact-SQL) [Funciones de cadena (Transact-SQL)]