Valores computados na lista de seleção

Uma lista de seleção pode conter expressões que são construídas aplicando-se operadores a uma ou mais expressões simples. Isto permite que os conjuntos de resultados contenham valores que não existem nas tabelas base, mas são calculados a partir dos valores armazenados nas tabelas base. Essas colunas de conjunto de resultados são chamadas colunas derivadas e incluem:

  • Cálculos e computações que usam operadores aritméticos ou funções em colunas numéricas ou constantes:

    USE AdventureWorks2008R2;
    GO
    SELECT ProductID, ROUND( (ListPrice * .9), 2) AS DiscountPrice
    FROM Production.Product
    WHERE ProductID = 748;
    
  • Conversões de tipo de dados:

    USE AdventureWorks2008R2;
    GO
    SELECT ( CAST(ProductID AS VARCHAR(10)) + ': '
           + Name ) AS ProductIDName
    FROM Production.Product;
    
  • Expressões CASE:

    USE AdventureWorks2008R2;
    GO
    SELECT ProductID, Name,
       CASE Class
          WHEN 'H' THEN ROUND( (ListPrice * .6), 2)
          WHEN 'L' THEN ROUND( (ListPrice * .7), 2)
          WHEN 'M' THEN ROUND( (ListPrice * .8), 2)
          ELSE ROUND( (ListPrice * .9), 2)
       END AS DiscountPrice
    FROM Production.Product;
    
  • Subconsultas:

    SELECT Prd.ProductID, Prd.Name,
           (   SELECT SUM(OD.UnitPrice * OD.OrderQty)
               FROM AdventureWorks2008R2.Sales.SalesOrderDetail AS OD
               WHERE OD.ProductID = Prd.ProductID
           ) AS SumOfSales
    FROM AdventureWorks2008R2.Production.Product AS Prd
    ORDER BY Prd.ProductID;
    

Cálculos e computações podem ser executados com dados usando colunas numéricas ou constantes numéricas em uma lista de seleção com operadores aritméticos, funções, conversões ou consultas aninhadas. Os operadores aritméticos permitem adicionar, subtrair, multiplicar e dividir dados numéricos.

Há suporte para os operadores aritméticos a seguir.

Símbolo

Operação

+

Adição

-

Subtração

/

Divisão

*

Multiplicação

%

Módulo

Os operadores aritméticos que executam adição, subtração, divisão e multiplicação podem ser usados em qualquer coluna ou expressão numérica: int, smallint, tinyint, decimal, numeric, float, real, money ou smallmoney. O operador do módulo só pode ser usado em int, smallint ou colunas ou expressões tinyint.

Operações aritméticas também podem ser executadas em colunas de tipo de dados de data e hora usando as funções de data ou operadores aritméticos regulares de adição ou subtração.

Você pode usar operadores aritméticos para executar computações que envolvem uma ou mais colunas. O uso de constantes em expressões aritméticas é opcional, conforme mostrado neste exemplo:

SELECT p.ProductID, p.Name,
    SUM (p.ListPrice * i.Quantity) AS InventoryValue
FROM AdventureWorks2008R2.Production.Product p
JOIN AdventureWorks2008R2.Production.ProductInventory i
ON p.ProductID = i.ProductID
GROUP BY p.ProductID, p.Name
ORDER BY p.ProductID;