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:

  1. number: Este é o valor decimal que você deseja truncar.
  2. decimals: Especifique quantas casas decimais você deseja manter.
  3. 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!