@@ -24,7 +24,7 @@ SELECT [ALL|DISTINCT [ON <replaceable class="PARAMETER">column</replaceable>] ]
2424 [ WHERE <replaceable class="PARAMETER">condition</replaceable> ]
2525 [ GROUP BY <replaceable class="PARAMETER">column</replaceable> [, ...] ]
2626 [ HAVING <replaceable class="PARAMETER">condition</replaceable> [, ...] ]
27- [ UNION [ALL] <replaceable class="PARAMETER">select</replaceable> ]
27+ [{ UNION [ALL] | INTERSECT | EXCEPT } <replaceable class="PARAMETER">select</replaceable> ]
2828 [ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
2929 </synopsis>
3030
@@ -230,8 +230,16 @@ including duplicates.
230230 DESCending mode operator. (See ORDER BY clause)</para>
231231
232232 <para>
233- The UNION clause specifies a table derived from a Cartesian
234- product union join. (See UNION clause).</para>
233+ The UNION clause allows the result to be the collection of rows
234+ returned by the queries involved. (See UNION clause).</para>
235+
236+ <para>
237+ The INTERSECT give you the rows that are common to both queries.
238+ (See INTERSECT clause).</para>
239+
240+ <para>
241+ The EXCEPT give you the rows in the upper query not in the lower query.
242+ (See EXCEPT clause).</para>
235243
236244 <para>
237245 You must have SELECT privilege to a table to read its values
@@ -370,7 +378,8 @@ SELECT name FROM distributors ORDER BY code;
370378 specifies any select expression without an ORDER BY clause.</para>
371379
372380 <para>
373- The UNION operator specifies a table derived from a Cartesian product.
381+ The UNION clause allows the result to be the collection of rows
382+ returned by the queries involved. (See UNION clause).
374383 The two tables that represent the direct operands of the UNION must
375384 have the same number of columns, and corresponding columns must be
376385 of compatible data types.</para>
@@ -381,11 +390,75 @@ SELECT name FROM distributors ORDER BY code;
381390
382391 <para>
383392 Multiple UNION operators in the same SELECT statement are
384- evaluated left to right.
393+ evaluated left to right.
385394 Note that the ALL keyword is not global in nature, being
386- applied only for the current pair of table results.</para>
395+ applied only for the current pair of table results.</para>
396+
397+ </refsect2>
398+
399+ <refsect2 id="R2-SQL-INTERSECT-2">
400+ <refsect2info>
401+ <date>1998-09-24</date>
402+ </refsect2info>
403+ <title>
404+ INTERSECT Clause
405+ </title>
406+ <para>
407+ <synopsis>
408+ <replaceable class="PARAMETER">table_query</replaceable> INTERSECT <replaceable class="PARAMETER">table_query</replaceable>
409+ [ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
410+ </synopsis>
411+
412+ where
413+ <replaceable class="PARAMETER">table_query</replaceable>
414+ specifies any select expression without an ORDER BY clause.</para>
415+
416+ <para>
417+ The INTERSECT clause allows the result to be all rows that are
418+ common to the involved queries. (See INTERSECT clause).
419+ The two tables that represent the direct operands of the INTERSECT must
420+ have the same number of columns, and corresponding columns must be
421+ of compatible data types.</para>
422+
423+ <para>
424+ Multiple INTERSECT operators in the same SELECT statement are
425+ evaluated left to right.
426+ </para>
427+
428+ </refsect2>
429+
430+ <refsect2 id="R2-SQL-EXCEPT-2">
431+ <refsect2info>
432+ <date>1998-09-24</date>
433+ </refsect2info>
434+ <title>
435+ EXCEPT Clause
436+ </title>
437+ <para>
438+ <synopsis>
439+ <replaceable class="PARAMETER">table_query</replaceable> EXCEPT <replaceable class="PARAMETER">table_query</replaceable>
440+ [ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
441+ </synopsis>
387442
388- </refsect2></refsect1>
443+ where
444+ <replaceable class="PARAMETER">table_query</replaceable>
445+ specifies any select expression without an ORDER BY clause.</para>
446+
447+ <para>
448+ The EXCEPT clause allows the result to be rows from the upper query
449+ that are not in the lower query. (See EXCEPT clause).
450+ The two tables that represent the direct operands of the EXCEPT must
451+ have the same number of columns, and corresponding columns must be
452+ of compatible data types.</para>
453+
454+ <para>
455+ Multiple EXCEPT operators in the same SELECT statement are
456+ evaluated left to right.
457+ </para>
458+
459+ </refsect2>
460+
461+ </refsect1>
389462
390463 <refsect1 id="R1-SQL-SELECT-2">
391464 <title>
@@ -633,7 +706,7 @@ SELECT [ ALL | DISTINCT ] <replaceable class="PARAMETER">expression</replaceable
633706 [ WHERE <replaceable class="PARAMETER">condition</replaceable> ]
634707 [ GROUP BY <replaceable class="PARAMETER">column</replaceable> [, ...] ]
635708 [ HAVING <replaceable class="PARAMETER">condition</replaceable> [, ...] ]
636- [ UNION [ ALL ] <replaceable class="PARAMETER">select</replaceable>]
709+ [{ UNION [ALL] | INTERSECT | EXCEPT } <replaceable class="PARAMETER">select</replaceable>]
637710 [ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
638711 </synopsis>
639712