A ExpressãoSeleção é a construção básica SELECT-FROM-WHERE utilizada para construir um valor tabela baseado na filtragem e projeção de valores de outras tabelas.
ItemSeleção:
A cláusula SELECT contém uma lista de expressões e um quantificador opcional
que é aplicado aos resultados da
O ItemSeleção projeta um ou mais valores coluna de resultado na tabela resultado sendo construída na ExpressãoSeleção.
O resultado da
A cláusula WHERE faz com que as linhas do resultado sejam filtradas com base em expressões booleanas. Somente as linhas para as quais a expressão booleana é avaliada como verdade são retornadas no resultado.
A cláusula GROUP BY agrupa as linhas do resultado em subconjuntos que possuem valores correspondentes em uma ou mais colunas. As cláusulas GROUP BY são utilizadas normalmente com agregações.
Caso haja uma cláusula GROUP BY, a cláusula SELECT deverá conter
apenas agregações ou colunas de agrupamento.
Se for desejado incluir uma coluna não agrupada na cláusula SELECT, esta
coluna deverá ser incluída em uma expressão de agregação. Por exemplo:
Se não houver uma cláusula GROUP BY, mas ItemSeleção contiver uma agregação que não esteja em uma subconsulta, a consulta será agrupada implicitamente. Toda a tabela se torna um único grupo.
A cláusula HAVING restringe a tabela agrupada, especificando uma condição de procura (muito semelhante à cláusula WHERE) que pode fazer referência apenas às colunas de agrupamento ou agregações do escopo corrente. A cláusula HAVING é aplicada a cada grupo da tabela agrupada. Se a cláusula HAVING for avaliada como TRUE, a linha será retida para processamento adicional. Se a cláusula HAVING for avaliada como FALSE ou NULL, a linha será desprezada. Se houver uma cláusula HAVING mas não houver GROUP BY, a tabela será agrupada implicitamente em um grupo para toda a tabela.
O
O resultado da ExpressãoSeleção é sempre uma tabela.
Quando a consulta não possui uma cláusula FROM (quando está sendo construído
um valor, e não obtendo dados de uma tabela), é utilizada a instrução VALUES,
e não a ExpressãoSeleção.
Por exemplo:
Consulte
O * é expandido como todas as colunas presentes nas tabelas da cláusula FROM associada.
Pode ser atribuído um nome a uma coluna do ItemSeleção utilizando a cláusula AS. Quando a ExpressãoSeleção aparece no operador UNION, INTERSECT ou EXCEPT, os nomes da primeira ExpressãoSeleção são usados como os nomes das colunas no resultado da operação. Se uma coluna do ItemSeleção não for uma expressão simples de ReferênciaColuna, ou não for dado um nome através da cláusula AS, será atribuído para a mesma um nome único gerado.
Estes nomes de colunas são úteis em vários casos: