Add EXCEPT/INTERSECT doc changes.

This commit is contained in:
Bruce Momjian 1999-03-19 02:41:41 +00:00
parent 58cc2b6ead
commit 0d01fd4e19
4 changed files with 93 additions and 20 deletions

View File

@ -24,7 +24,7 @@ SELECT [ALL|DISTINCT [ON <replaceable class="PARAMETER">column</replaceable>] ]
[ WHERE <replaceable class="PARAMETER">condition</replaceable> ]
[ GROUP BY <replaceable class="PARAMETER">column</replaceable> [, ...] ]
[ HAVING <replaceable class="PARAMETER">condition</replaceable> [, ...] ]
[ UNION [ALL] <replaceable class="PARAMETER">select</replaceable> ]
[ { UNION [ALL] | INTERSECT | EXCEPT } <replaceable class="PARAMETER">select</replaceable> ]
[ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
</synopsis>
@ -230,8 +230,16 @@ including duplicates.
DESCending mode operator. (See ORDER BY clause)</para>
<para>
The UNION clause specifies a table derived from a Cartesian
product union join. (See UNION clause).</para>
The UNION clause allows the result to be the collection of rows
returned by the queries involved. (See UNION clause).</para>
<para>
The INTERSECT give you the rows that are common to both queries.
(See INTERSECT clause).</para>
<para>
The EXCEPT give you the rows in the upper query not in the lower query.
(See EXCEPT clause).</para>
<para>
You must have SELECT privilege to a table to read its values
@ -370,7 +378,8 @@ SELECT name FROM distributors ORDER BY code;
specifies any select expression without an ORDER BY clause.</para>
<para>
The UNION operator specifies a table derived from a Cartesian product.
The UNION clause allows the result to be the collection of rows
returned by the queries involved. (See UNION clause).
The two tables that represent the direct operands of the UNION must
have the same number of columns, and corresponding columns must be
of compatible data types.</para>
@ -381,11 +390,75 @@ SELECT name FROM distributors ORDER BY code;
<para>
Multiple UNION operators in the same SELECT statement are
evaluated left to right.
evaluated left to right.
Note that the ALL keyword is not global in nature, being
applied only for the current pair of table results.</para>
applied only for the current pair of table results.</para>
</refsect2></refsect1>
</refsect2>
<refsect2 id="R2-SQL-INTERSECT-2">
<refsect2info>
<date>1998-09-24</date>
</refsect2info>
<title>
INTERSECT Clause
</title>
<para>
<synopsis>
<replaceable class="PARAMETER">table_query</replaceable> INTERSECT <replaceable class="PARAMETER">table_query</replaceable>
[ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
</synopsis>
where
<replaceable class="PARAMETER">table_query</replaceable>
specifies any select expression without an ORDER BY clause.</para>
<para>
The INTERSECT clause allows the result to be all rows that are
common to the involved queries. (See INTERSECT clause).
The two tables that represent the direct operands of the INTERSECT must
have the same number of columns, and corresponding columns must be
of compatible data types.</para>
<para>
Multiple INTERSECT operators in the same SELECT statement are
evaluated left to right.
</para>
</refsect2>
<refsect2 id="R2-SQL-EXCEPT-2">
<refsect2info>
<date>1998-09-24</date>
</refsect2info>
<title>
EXCEPT Clause
</title>
<para>
<synopsis>
<replaceable class="PARAMETER">table_query</replaceable> EXCEPT <replaceable class="PARAMETER">table_query</replaceable>
[ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
</synopsis>
where
<replaceable class="PARAMETER">table_query</replaceable>
specifies any select expression without an ORDER BY clause.</para>
<para>
The EXCEPT clause allows the result to be rows from the upper query
that are not in the lower query. (See EXCEPT clause).
The two tables that represent the direct operands of the EXCEPT must
have the same number of columns, and corresponding columns must be
of compatible data types.</para>
<para>
Multiple EXCEPT operators in the same SELECT statement are
evaluated left to right.
</para>
</refsect2>
</refsect1>
<refsect1 id="R1-SQL-SELECT-2">
<title>
@ -633,7 +706,7 @@ SELECT [ ALL | DISTINCT ] <replaceable class="PARAMETER">expression</replaceable
[ WHERE <replaceable class="PARAMETER">condition</replaceable> ]
[ GROUP BY <replaceable class="PARAMETER">column</replaceable> [, ...] ]
[ HAVING <replaceable class="PARAMETER">condition</replaceable> [, ...] ]
[ UNION [ ALL ] <replaceable class="PARAMETER">select</replaceable>]
[ { UNION [ALL] | INTERSECT | EXCEPT } <replaceable class="PARAMETER">select</replaceable>]
[ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
</synopsis>

View File

@ -463,7 +463,7 @@ used to retrieve data. The syntax is:
[WHERE condition]
[GROUP BY <name_of_attr_i>
[,... [, <name_of_attr_j>]] [HAVING condition]]
[{UNION | INTERSECT | EXCEPT} SELECT ...]
[{UNION [ALL] | INTERSECT | EXCEPT} SELECT ...]
[ORDER BY <name_of_attr_i> [ASC|DESC]
[, ... [, <name_of_attr_j> [ASC|DESC]]]];
\end{verbatim}

View File

@ -5,7 +5,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: psqlHelp.h,v 1.59 1999/02/13 23:20:40 momjian Exp $
* $Id: psqlHelp.h,v 1.60 1999/03/19 02:41:36 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@ -108,7 +108,7 @@ static struct _helpStruct QL_HELP[] = {
"define a new rule",
"\
\tCREATE RULE rule_name AS ON\n\
\t[SELECT|UPDATE|DELETE|INSERT]\n\
\t{ SELECT | UPDATE | DELETE | INSERT }\n\
\tTO object [WHERE qual]\n\
\tDO [INSTEAD] [action|NOTHING|[actions]];"},
{"create sequence",
@ -175,7 +175,7 @@ static struct _helpStruct QL_HELP[] = {
\t[GROUP BY group_list]\n\
\t[HAVING having_clause]\n\
\t[ORDER BY attr1 [USING op1], ...attrN]\n\
\t[UNION [ALL] SELECT ...];"},
\t[ { UNION [ALL] | INTERSECT | EXCEPT } SELECT ...];"},
{"delete",
"delete tuples",
"\
@ -258,8 +258,8 @@ static struct _helpStruct QL_HELP[] = {
"grant access control to a user or group",
"\
\tGRANT privilege1, ...privilegeN ON rel1, ...relN TO \n\
[PUBLIC|GROUP group|username]\n\
\t privilege is ALL|SELECT|INSERT|UPDATE|DELETE|RULE"},
{ PUBLIC | GROUP group | username }\n\
\t privilege is { ALL | SELECT | INSERT | UPDATE | DELETE | RULE }"},
{"insert",
"insert tuples",
"\
@ -271,7 +271,7 @@ static struct _helpStruct QL_HELP[] = {
\t[WHERE qual]\n\
\t[GROUP BY group_list]\n\
\t[HAVING having_clause]\n\
\t[UNION [ALL] SELECT ...];"},
\t[ { UNION [ALL] | INTERSECT | EXCEPT } SELECT ...];"},
{"listen",
"listen for notification on a condition name",
"\
@ -305,8 +305,8 @@ static struct _helpStruct QL_HELP[] = {
"revoke access control from a user or group",
"\
\tREVOKE privilege1, ...privilegeN ON rel1, ...relN FROM \n\
[PUBLIC|GROUP group|username]\n\
\t privilege is ALL|SELECT|INSERT|UPDATE|DELETE|RULE"},
{ PUBLIC | GROUP group | username }\n\
\t privilege is { ALL | SELECT | INSERT | UPDATE | DELETE | RULE }"},
{"rollback work",
"abort a transaction",
"\
@ -321,7 +321,7 @@ static struct _helpStruct QL_HELP[] = {
\t[GROUP BY group_list]\n\
\t[HAVING having_clause]\n\
\t[ORDER BY attr1 [ASC|DESC] [USING op1], ...attrN ]\n\
\t[UNION [ALL] SELECT ...];"},
\t[ { UNION [ALL] | INTERSECT | EXCEPT } SELECT ...];"},
{"set",
"set run-time environment",
#ifdef MULTIBYTE

View File

@ -1,6 +1,6 @@
.\" This is -*-nroff-*-
.\" XXX standard disclaimer belongs here....
.\" $Header: /cvsroot/pgsql/src/man/Attic/select.l,v 1.11 1999/02/02 03:45:32 momjian Exp $
.\" $Header: /cvsroot/pgsql/src/man/Attic/select.l,v 1.12 1999/03/19 02:41:41 momjian Exp $
.TH SELECT SQL 11/05/95 PostgreSQL PostgreSQL
.SH NAME
select - retrieve instances from a class
@ -15,7 +15,7 @@ select - retrieve instances from a class
[\fBgroup by\fR attr_name1 {, attr_name-i....}]
[\fBhaving\fR having-clause]
[\fBorder by\fR attr_name1 [\fBasc\fR | \fBdesc\fR] [\fBusing op1\fR] {, attr_namei...}]
[\fBunion {all} select\fR ...]
[ { \fBunion {all}\fR | \fBintersect\fR | \fBexcept\fR } \fBselect\fR ...]
.fi
.SH DESCRIPTION