STR (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse no Microsoft Fabric
Retorna dados de caractere convertidos de dados numéricos. Os dados de caractere são justificados à direita, com comprimento e precisão decimal especificados.
Convenções de sintaxe de Transact-SQL
Sintaxe
STR ( float_expression [ , length [ , decimal ] ] )
Argumentos
float_expression
É uma expressão de tipo de dados numérico aproximado (float) com um separador decimal.
length
É o comprimento total. Isso inclui ponto decimal, sinal, dígitos e espaços. O padrão é 10.
decimal
É o número de dígitos à direita da vírgula decimal. decimal deve ser menor ou igual a 16. Se decimal for maior que 16, o resultado será truncado com dezesseis casas à direita do separador decimal.
Tipos de retorno
varchar
Comentários
Se for fornecidos, os valores para os parâmetros length e decimal para STR devem ser positivos. O número é arredondado para um número inteiro por padrão ou se o parâmetro decimal for 0. O comprimento especificado deve ser maior ou igual à parte do número antes do ponto decimal mais o sinal do número (se houver). Uma float_expression breve é justificada à direita no comprimento especificado e uma float_expression longa é truncada para o número especificado de casas decimais. Por exemplo, STR(12, 10) gera 12 como resultado. É justificado à direita no conjunto de resultados. Entretanto, STR (1223, 2) trunca o conjunto de resultados com **. As funções de cadeia de caracteres podem ser aninhadas.
Observação
Para converter para dados Unicode, use STR dentro de uma função de conversão CONVERT ou CAST.
Exemplos
O exemplo a seguir converte uma expressão composta de cinco dígitos e um ponto decimal em uma cadeia de caracteres de seis posições. A parte fracionária do número é arredondada para uma casa decimal.
SELECT STR(123.45, 6, 1);
GO
Veja a seguir o conjunto de resultados.
------
123.5
(1 row(s) affected)
Quando a expressão excede o comprimento especificado, a cadeia de caracteres retorna **
para o comprimento especificado.
SELECT STR(123.45, 2, 2);
GO
Veja a seguir o conjunto de resultados.
--
**
(1 row(s) affected)
Até mesmo quando dados numéricos são aninhados em STR
, o resultado são dados de caractere com o formato especificado.
SELECT STR (FLOOR (123.45), 8, 3);
GO
Veja a seguir o conjunto de resultados.
--------
123.000
(1 row(s) affected)
Confira também
CAST e CONVERT (Transact-SQL)
FORMAT (Transact-SQL)
Funções de cadeia de caracteres (Transact-SQL)