Como Truncar
Casas Decimais no SQL Server Sem Arredondar
Ao trabalhar com valores decimais no SQL Server, você pode, por vezes, perceber a necessidade de gerenciar o número de casas decimais em seus dados. A função ROUND
típica arredonda o número, o que pode não ser adequado para todas as situações. Neste post do blog, exploraremos como truncar casas decimais no SQL Server sem arredondá-las.
O Problema: Arredondamento vs. Truncamento
Imagine que você tem um valor decimal como 123.456
, e deseja mantê-lo com duas casas decimais. Usar os métodos de arredondamento padrão no SQL Server ajustará automaticamente o valor para 123.46
. No entanto, há situações em que você só quer descartar os decimais extras, resultando em 123.45
em vez disso. É aqui que o truncamento se torna essencial.
Vamos dar uma olhada rápida em um valor de exemplo:
DECLARE @value DECIMAL(18,2);
SET @value = 123.456;
Após executar esse código com o arredondamento padrão, @value
se tornaria 123.46
. Mas e se você quiser mantê-lo como 123.45
?
A Solução: Usando a Função ROUND
O SQL Server fornece uma poderosa função ROUND
que pode ajudá-lo a truncar casas decimais. A função requer três parâmetros:
- number: Este é o valor decimal que você deseja truncar.
- decimals: Especifique quantas casas decimais você deseja manter.
- operation: Este é opcional. Defina este parâmetro como
0
para arredondar o resultado ou como qualquer outro valor (por exemplo,1
) para truncá-lo.
Exemplo de Uso
Aqui está como você pode usar a função ROUND
de maneira eficaz:
SELECT ROUND(123.456, 2, 1);
Neste caso, usar 1
como o terceiro parâmetro truncará o valor para 123.45
, em vez de arredondá-lo.
Compatibilidade
A função ROUND
com capacidades de truncamento funciona nos seguintes ambientes:
- SQL Server (a partir da versão 2008)
- Azure SQL Database
- Azure SQL Data Warehouse
- Parallel Data Warehouse
Para mais detalhes, você pode consultar a documentação do W3Schools sobre a função ROUND do SQL Server.
Conclusão
Ao usar a função ROUND
com os parâmetros apropriados, você pode facilmente truncar casas decimais no SQL Server sem arredondar seus valores. Este método garante que você tenha controle preciso sobre a apresentação dos seus dados, mantendo a integridade e a precisão necessárias para as demandas específicas do seu projeto.
Sinta-se à vontade para experimentar essa técnica em seu próprio ambiente SQL Server e garantir que seus dados sejam formatados exatamente da maneira que você precisa!