No SQL Server, o T-SQL
STR()
A função retorna dados de caracteres convertidos de dados numéricos. O valor de retorno tem um tipo de retorno de varchar . Você fornece os dados numéricos como um argumento ao chamar a função. A função então o converte em dados de caractere. Há também dois argumentos opcionais que você pode usar para especificar o comprimento e o número de casas à direita do ponto decimal.
Sintaxe
A sintaxe fica assim:
STR ( float_expression [ , comprimento [ , decimal ] ] )
Onde float_expression é uma expressão de valor numérico aproximado (float ) tipo de dados com um ponto decimal.
comprimento é um argumento opcional que você pode usar para especificar o comprimento total. Isso inclui ponto decimal, sinal, dígitos e espaços. O padrão é 10.
decimal é o número de casas à direita da vírgula. Este pode ser um valor máximo de 16. Se for maior que isso, será truncado para 16.
Exemplo 1 – Uso básico
Veja um exemplo de como funciona:
SELECT STR(123.45) AS Resultado;
Resultado:
+------------+| Resultado ||------------|| 123 |+------------+
Exemplo 2 – Arredondamento
Por padrão, o número é arredondado para um número inteiro. Se ajustarmos a entrada do exemplo anterior (por exemplo, aumentar a parte fracionária de
.45
para .55
) obtemos o seguinte:SELECT STR(123.55) AS Resultado;
Resultado:
+------------+| Resultado ||------------|| 124 |+------------+
Exemplo 3 – Duração
Ao usar o comprimento opcional parâmetro, seu valor deve ser maior ou igual à parte do número antes da vírgula mais o sinal do número (se houver).
Por exemplo, o seguinte é bom, porque comprimento é maior que a parte do número antes da vírgula:
SELECT STR(123.55, 4) AS Resultado;
Resultado:
+----------+| Resultado ||----------|| 124 |+----------+
No entanto, o exemplo a seguir demonstra o que acontece quando o comprimento valor é muito pequeno:
SELECT STR(123.55, 2) AS Resultado;
Resultado:
+----------+| Resultado ||----------|| ** |+----------+
Observe também que comprimento determina o comprimento da saída e inclui o ponto decimal, sinal, dígitos e espaços. O comprimento padrão é 10.
Aqui está um exemplo para demonstrar a diferença na saída dependendo do valor do comprimento argumento:
SELECT 123 AS '123', STR(123, 3) AS '3', STR(123, 10) AS '10', STR(123, 16) AS '16';
Resultado:
+-------+-----+------------+------------------+ | 123 | 3 | 10 | 16 ||-------+-----+------------+------------------|| 123 | 123 | 123 | 123 |+-------+-----+------------+------------------+
Para outra maneira de demonstrar isso, no exemplo a seguir, aparo a saída usando oTRIM()
função (e compare-a com a versão não aparada):
SELECT TRIM(STR(123, 16)) AS 'A', STR(123, 16) AS 'B';
Resultado:
+-----+------------------+| A | B ||-----+------------------|| 123 | 123 |+-----+------------------+Exemplo 4 – Casas decimais
Aqui está um exemplo de uso do opcional decimal parâmetro:
SELECT STR(123,55, 8, 4) AS Resultado;
Resultado:
+----------+| Resultado ||----------|| 123.5500 |+----------+
Observe que eu aumentei o valor de comprimento para acomodar as casas decimais.
Se eu reduzir o comprimento valor para6
, Eu entendi isso:
SELECT STR(123,55, 6, 4) AS Resultado;
Resultado:
+----------+| Resultado ||----------|| 123,55 |+----------+