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;