O.Belo, DI, UM, 2003
-- Atributos derivadosSELECT *, UnitPrice*Quantity AS "Total w/Discount",UnitPrice*Quantity * (1-Discount) AS "Total"FROM [Order Details]Where UnitPrice*Quantity > 100-- HAVING-- Esta clausula só pode ser utilizada para actuar sobre resultados-- de grupos.SELECT ProductID, sum(UnitPrice*Quantity) AS "Total w/Discount",sum(UnitPrice*Quantity * (1-Discount)) AS "Total"FROM [Order Details]WHERE OrderId IN (10248, 10259, 10285, 10300, 10301, 11000)GROUP BY ProductIdHAVING sum(UnitPrice*Quantity * (1-Discount)) > 200-- LIKE-- Apresentar uma lista (CustomerID, CompanyName) dos clientes-- cujos nomes respeitem as seguintes expressões de procura: 'A_a%' ou '%Bo_t%'-- Demosnstração da utilização de caracteres especiais ("wildcards") - % e _SELECT CustomerID, CompanyNameFROM CustomersWHERE CompanyName LIKE 'A_a%' OR CompanyName LIKE '%Bo_t%'-- Nomes de clientes começados por A ou CSELECT CustomerID, CompanyNameFROM CustomersWHERE CompanyName LIKE '[AC]%'-- Nomes de clientes não começados por A ou CSELECT CustomerID, CompanyNameFROM CustomersWHERE CompanyName LIKE '[^AC]%'-- Utilização do caracter ' dentro de uma string-- Nomes de produtos que contenham a string "n'"SELECT *FROM ProductsWHERE ProductName LIKE '%n''%'-- ESCAPE-- Nomes de fornecedores que contenham a string "100%"SELECT *FROM SuppliersWHERE CompanyName LIKE '%100\%%' ESCAPE '\'-- INNER JOIN -- Junção Interior-- Quais os nomes dos empregados que recepcionaram encomendas-- no dia AAAA/MM/DD?-- Demonstração da utilização de uma equi-junçãoSELECT DISTINCT EN.EmployeeID, FU.FirstName, FU.LastName, EN.OrderDateFROM Orders AS EN, Employees AS FUWHERE EN.EmployeeID = FU.EmployeeID AND OrderDate = '1996/08/14'-- Demonstração da utilização de uma junção interna-- Apenas são apresentados os registos que fazem a ligação entre as-- tabelas Orders e Employees.SELECT EN.EmployeeID, FU.FirstName, FU.LastName, EN.OrderDateFROM Orders AS EN INNER JOIN Employees AS FUON EN.EmployeeID = FU.EmployeeIDWHERE OrderDate = '1996/08/14'-- Interrogação idêntica à anterior, mas agora apresentando uma concatenação de-- atributos - FU.FirstName + ' ' + FU.LastName
Leave a Comment