¶
9.19. SELECT Statement
¶
9.19.1. Syntax
< select statement: single row > ::= SELECT [ < set quantifier > ] < select list >
INTO < select target list >
< table expression >
< select target list > ::=
< target specification > [ { < comma > < target specification > }... ]
< query expression > ::=
< non-join query expression >
| < joined table >
< non-join query expression > ::=
< non-join query term >
| < query expression > UNION [ ALL ]
[ < corresponding spec > ] < query term >
| < query expression > EXCEPT [ ALL ]
[ < corresponding spec > ] < query term >
< non-join query term > ::=
< non-join query primary >
| < query term > INTERSECT [ ALL ]
[ < corresponding spec > ] < query primary >
< non-join query primary > ::=
< simple table >
| < left parent > < non-join query expression > < right parent >
< simple table > ::=
< query specification >
| < table value constructor >
| < explicit table >
< query specification > ::=
SELECT [ < set quantifier > ] < select list > < table expression >
< select list > ::=
< asterisk >
| < select sublist > [ { < comma > < select sublist > }... ]
< select sublist > ::=
< derived column >
| < qualifier > < period > < asterisk >
< derived column > ::= < value expression > [ < as clause > ]
< as clause > ::= [ AS ] < column name >
< table expression > ::=
< from clause >
[ < where clause > ]
[ < group by clause > ]
[ < having clause > ]
< from clause > ::= FROM < table reference >
[ { < comma > < table reference > }... ]
< table reference > ::=
< table name > [ [ AS ] < correlation name >
[ < left parent > < derived column list > < right parent > ] ]
| < derived table > [ AS ] < correlation name >
[ < left parent > < derived column list > < right parent > ]
| < joined table >
< derived column list > ::= < column name list >
< derived table > ::= < table subquery >
< table subquery > ::= < subquery >
< joined table > ::=
< cross join >
| < qualified join >
| < left parent > < joined table > < right parent >
< cross join > ::=
< table reference > CROSS JOIN < table reference >
< qualified join > ::=
< table reference > [ NATURAL ] [ < join type > ] JOIN
< table reference > [ < join specification > ]
< join type > ::=
INNER
| < outer join type > [ OUTER ]
| UNION
< outer join type > ::=
LEFT
| RIGHT
| FULL
< join specification > ::=
< join condition >
| < named columns join >
< join condition > ::= ON < search condition >
< named columns join > ::=
USING < left parent > < join column list > < right parent >
< join column list > ::= < column name list >
< where clause > ::= WHERE < search condition >
< group by clause > ::=
GROUP BY < grouping column reference list >
< grouping column reference list > ::=
< grouping column reference >
[ { < comma > < grouping column reference > }... ]
< grouping column reference > ::=
< column reference > [ < collate clause > ]