STR (Transact-SQL)

Retorna dados de caractere convertidos de dados numéricos.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • float_expression
    É uma expressão de tipo de dados numérico aproximado (float) com um ponto decimal.

  • length
    É o comprimento total. Isso inclui ponto decimal, sinal, dígitos e espaços. O padrão é 10.

  • decimal
    É o número de casas à direita do ponto decimal. decimal deve ser menor que ou igual a 16. Se decimal for maior que 16, o resultado será truncado com dezesseis casas à direita do ponto decimal.

Tipos de retorno

varchar

Comentários

Se fornecido, 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 curta é justificada à direita no comprimento especificado, e uma float_expression longa é truncada com o número especificado de casas decimais. Por exemplo, STR (12,10) gera como resultado 12. É 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çãoObservação

Para converter a 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

Aqui está 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

Aqui está 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

Aqui está o conjunto de resultados.

--------
 123.000

(1 row(s) affected)