Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como a função STR() funciona no SQL Server (T-SQL)


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 o TRIM() 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 para 6 , Eu entendi isso:
SELECT STR(123,55, 6, 4) AS Resultado;

Resultado:
+----------+| Resultado ||----------|| 123,55 |+----------+