select.sgml 21.0 KB
Newer Older
1 2 3
<refentry id="SQL-SELECT">
 <refmeta>
  <refentrytitle>
4
   SELECT
5 6 7 8 9
  </refentrytitle>
  <refmiscinfo>SQL - Language Statements</refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>
10
   SELECT
11 12 13 14 15 16
  </refname>
  <refpurpose>
   Retrieve rows from a table or view.
  </refpurpose></refnamediv>
 <refsynopsisdiv>
  <refsynopsisdivinfo>
17
   <date>1998-09-24</date>
18 19
  </refsynopsisdivinfo>
  <synopsis>
20 21 22 23
SELECT [ ALL | DISTINCT [ ON <replaceable class="PARAMETER">column</replaceable> ] ]
    <replaceable class="PARAMETER">expression</replaceable> [ AS <replaceable class="PARAMETER">name</replaceable> ] [, ...]
    [ INTO [ TEMPORARY | TEMP ] [ TABLE ] <replaceable class="PARAMETER">new_table</replaceable> ]
    [ FROM <replaceable class="PARAMETER">table</replaceable> [ <replaceable class="PARAMETER">alias</replaceable> ] [, ...] ]
24 25 26
    [ WHERE <replaceable class="PARAMETER">condition</replaceable> ]
    [ GROUP BY <replaceable class="PARAMETER">column</replaceable> [, ...] ]
    [ HAVING <replaceable class="PARAMETER">condition</replaceable> [, ...] ]
27
    [ { UNION [ ALL ] | INTERSECT | EXCEPT } <replaceable class="PARAMETER">select</replaceable> ]
28
    [ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
29 30
    [ FOR UPDATE [ OF class_name... ] ]
    [ LIMIT { count | ALL } [ { OFFSET | , } count ] ]
31 32 33 34
  </synopsis>
  
  <refsect2 id="R2-SQL-SELECT-1">
   <refsect2info>
35
    <date>1998-09-24</date>
36 37 38 39
   </refsect2info>
   <title>
    Inputs
   </title>
40

41 42 43
   <para>
    <variablelist>
     <varlistentry>
44
      <term><replaceable class="PARAMETER">expression</replaceable></term>
45 46 47 48 49 50 51 52
      <listitem>
       <para>
	The name of a table's column or an expression.
       </para>
      </listitem>
     </varlistentry>
     
     <varlistentry>
53
      <term><replaceable class="PARAMETER">name</replaceable></term>
54 55 56 57 58 59 60 61 62 63 64
      <listitem>
       <para>
	Specifies another name for a column or an expression using
	the AS clause. <replaceable class="PARAMETER">name</replaceable>
	cannot be used in the WHERE
	condition. It can, however, be referenced in associated
	ORDER BY or GROUP BY clauses.
       </para>
      </listitem>
     </varlistentry>
     
T
Thomas G. Lockhart 已提交
65
    <varlistentry>
66 67
     <term>TEMPORARY</term>
     <term>TEMP</term>
T
Thomas G. Lockhart 已提交
68 69
     <listitem>
      <para>
70 71
	The table is created unique to this session, and is
	automatically dropped on session exit.
T
Thomas G. Lockhart 已提交
72 73 74
      </para>
     </listitem>
    </varlistentry>
75

76
     <varlistentry>
77
      <term><replaceable class="PARAMETER">new_table</replaceable></term>
78 79 80 81 82
      <listitem>
       <para>
	If the INTO TABLE clause is specified, the result of the
	query will be stored in another table with the indicated
	name.
T
Thomas G. Lockhart 已提交
83 84 85 86
	The target table (<replaceable class="PARAMETER">new_table</replaceable>) will
	be created automatically and should not exist before this command.
        Refer to <command>SELECT INTO</command> for more information.

87 88 89 90 91 92 93 94 95 96 97
	<note>
	 <para>
	  The <command>CREATE TABLE AS</command> statement will also
	  create a new  table from a select query.
	 </para>
	</note>
       </para>
      </listitem>
     </varlistentry>
     
     <varlistentry>
98
      <term><replaceable class="PARAMETER">table</replaceable></term>
99 100 101 102 103 104 105 106
      <listitem>
       <para>
	The name of an existing table referenced by the FROM clause.
       </para>
      </listitem>
     </varlistentry>
     
     <varlistentry>
107
      <term><replaceable class="PARAMETER">alias</replaceable></term>
108 109 110 111 112 113 114 115 116 117 118
      <listitem>
       <para>
	An alternate name for the preceding
	<replaceable class="PARAMETER">table</replaceable>.
	It is used for brevity or to eliminate ambiguity for joins
	within a single table.
       </para>
      </listitem>
     </varlistentry>
     
     <varlistentry>
119
      <term><replaceable class="PARAMETER">condition</replaceable></term>
120 121 122 123 124 125 126 127 128
      <listitem>
       <para>
	A boolean expression giving a result of true or false.
	See the WHERE clause.
       </para>
      </listitem>
     </varlistentry>
     
     <varlistentry>
129
      <term><replaceable class="PARAMETER">column</replaceable></term>
130 131 132 133 134 135 136 137
      <listitem>
       <para>
	The name of a table's column.
       </para>
      </listitem>
     </varlistentry>
     
     <varlistentry>
138
      <term><replaceable class="PARAMETER">select</replaceable></term>
139 140 141 142 143 144 145 146 147 148 149 150 151
      <listitem>
       <para>
	A select statement with all features except the ORDER BY clause.
       </para>
      </listitem>
     </varlistentry>
     
    </variablelist>
   </para>
  </refsect2>
  
  <refsect2 id="R2-SQL-SELECT-2">
   <refsect2info>
152
    <date>1998-09-24</date>
153 154 155 156
   </refsect2info>
   <title>
    Outputs
   </title>
157
   <para>
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179

    <variablelist>
     <varlistentry>
      <term>Rows</term>
      <listitem>
       <para>
	The complete set of rows resulting from the query specification.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>
       <returnvalue><replaceable>count</replaceable></returnvalue>
      </term>
      <listitem>
       <para>
	The count of rows returned by the query.
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
180
   </para>
181 182
  </refsect2>
 </refsynopsisdiv>
183

184 185
 <refsect1 id="R1-SQL-SELECT-1">
  <refsect1info>
186
   <date>1998-09-24</date>
187 188 189 190 191
  </refsect1info>
  <title>
   Description
  </title>
  <para>
192 193
   <command>SELECT</command> will return rows from one or more tables.
   Candidates for selection are rows which satisfy the WHERE condition;
194 195 196 197
   if WHERE is omitted, all rows are candidates.
   (See <xref linkend="where-title" endterm="where-title">.)
  </para>

198 199 200
  <para>
   <command>DISTINCT</command> will eliminate all duplicate rows from the
   selection.
201 202 203 204 205 206 207
   <command>DISTINCT ON <replaceable class="PARAMETER">column</replaceable></command>
   will eliminate all duplicates in the specified column; this is
   equivalent to using
   <command>GROUP BY <replaceable class="PARAMETER">column</replaceable></command>.
   <command>ALL</command> will return all candidate rows,
   including duplicates.
  </para>
208

209
  <para>
210
   The GROUP BY clause allows a user to divide a table
211 212 213 214
   conceptually into groups.
   (See <xref linkend="group-by-title" endterm="group-by-title">.)
  </para>

215
  <para>
216 217
   The HAVING clause specifies a grouped table derived by the
   elimination of groups from the result of the previously
218 219 220
   specified clause.
   (See <xref linkend="having-title" endterm="having-title">.)
  </para>
221 222
   
  <para>
223 224
   The ORDER BY clause allows a user to specify that he/she
   wishes the rows sorted according to the ASCending or 
225 226 227
   DESCending mode operator.
   (See <xref linkend="order-by-title" endterm="order-by-title">.)
  </para>
228 229
   
  <para>
230
   The UNION clause allows the result to be the collection of rows
231 232 233
   returned by the queries involved.
   (See <xref linkend="union-title" endterm="union-title">.)
  </para>
234 235 236
   
  <para>
   The INTERSECT give you the rows that are common to both queries.
237 238
   (See <xref linkend="intersect-title" endterm="intersect-title">.)
  </para>
239 240 241
   
  <para>
   The EXCEPT give you the rows in the upper query not in the lower query.
242 243
   (See <xref linkend="except-title" endterm="except-title">.)
  </para>
244
   
245 246 247
  <para>
   The FOR UPDATE clause allows the SELECT statement to perform 
   exclusive locking of selected rows.
248
  </para>
249 250 251
   
  <para>
   The LIMIT...OFFSET clause allows control over which rows are
252 253
   returned by the query.
  </para>
254

255
  <para>
256
   You must have SELECT privilege to a table to read its values
257 258
   (See the <command>GRANT</command>/<command>REVOKE</command> statements).
  </para>
259 260 261
   
  <refsect2 id="R2-SQL-WHERE-2">
   <refsect2info>
262
    <date>1998-09-24</date>
263
   </refsect2info>
264
   <title id="where-title">
265
    WHERE Clause
266 267 268 269 270
   </title>
   <para>
    The optional WHERE condition has the general form:
    
    <synopsis>
271
WHERE <replaceable class="PARAMETER">expr</replaceable> <replaceable class="PARAMETER">ETER">c</replaceable>e<replaceable class="PARAMETER">"PAR</replaceable>replaceable> [ <replaceable class="PARAMETER">log_op</replaceable> ... ]
272 273 274
    </synopsis>
    
    where <replaceable class="PARAMETER">cond_op</replaceable> can be
275 276 277
    one of: =, &lt;, &lt;=, &gt;, &gt;= or &lt;&gt;,
    a conditional operator like ALL, ANY, IN, LIKE, et cetera or a
    locally-defined operator, 
278 279 280 281 282 283 284 285 286 287
    and <replaceable class="PARAMETER">log_op</replaceable> can be one 
    of: AND, OR, NOT.
    The comparison returns either TRUE or FALSE and all
    instances will be discarded
    if the expression evaluates to FALSE.
   </para>
  </refsect2>
  
  <refsect2 id="R2-SQL-GROUPBY-2">
   <refsect2info>
288
    <date>1998-09-24</date>
289
   </refsect2info>
290
   <title id="group-by-title">
291
    GROUP BY Clause
292 293
   </title>
   <para>
294
    GROUP BY specifies a grouped table derived by the application
295
    of this clause:
296
    <synopsis>
297
GROUP BY <replaceable class="PARAMETER">column</replaceable> [, ...]
298 299 300 301 302 303 304 305 306 307 308 309 310
    </synopsis>
   </para>

   <para>
    GROUP BY will condense into a single row all rows that share the
    same values for the
    grouped columns; aggregates return values derived from all rows
    that make up the group.  The value returned for an ungrouped
    and unaggregated column is dependent on the order in which rows
    happen to be read from the database.
   </para>
  </refsect2>

311 312
  <refsect2 id="R2-SQL-HAVING-2">
   <refsect2info>
313
    <date>1998-09-24</date>
314
   </refsect2info>
315
   <title id="having-title">
316
    HAVING Clause
317 318 319 320 321 322 323 324 325
   </title>
   <para>
    The optional HAVING condition has the general form:
    
    <synopsis>
HAVING <replaceable class="PARAMETER">cond_expr</replaceable>
    </synopsis>
    
    where <replaceable class="PARAMETER">cond_expr</replaceable> is the same
326 327
    as specified for the WHERE clause.
   </para>
328 329
    
   <para>
330 331
    HAVING specifies a grouped table derived by the elimination
    of groups from the result of the previously specified clause
332
    that do not meet the <replaceable class="PARAMETER">cond_expr</replaceable>.</para>
333

334
   <para>
335
    Each column referenced in 
336
    <replaceable class="PARAMETER">cond_expr</replaceable> shall unambiguously
337
    reference a grouping column.
338 339 340 341 342
   </para>
  </refsect2>
  
  <refsect2 id="R2-SQL-ORDERBYCLAUSE-2">
   <refsect2info>
343
    <date>1998-09-24</date>
344
   </refsect2info>
345
   <title id="order-by-title">
346
    ORDER BY Clause
347 348 349
   </title>
   <para>
    <synopsis>
350
ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...]
351 352 353 354
    </synopsis></para>
    
   <para>
    <replaceable class="PARAMETER">column</replaceable> can be either a column
355 356
    name or an ordinal number.
   </para>
357
   <para>
358 359 360
    The ordinal numbers refers to the ordinal (left-to-right) position
    of the column. This feature makes it possible to define an ordering
    on the basis of a column that does not have a proper name.
361 362
    This is never absolutely necessary because it is always possible
    assign a name
363
    to a calculated column using the AS clause, e.g.:
364
    <programlisting>
365
SELECT title, date_prod + 1 AS newlen FROM films ORDER BY newlen;
366 367 368
    </programlisting></para>
    
   <para>
369 370
    From release 6.4 of PostgreSQL, the columns in the ORDER BY clause
    do not need to appear in the SELECT clause.
371
    Thus the following statement is now legal:
372
    <programlisting>
373
SELECT name FROM distributors ORDER BY code;
374 375
    </programlisting>
   </para>
376 377
    
   <para>
378 379
    Optionally one may add the keyword DESC (descending)
    or ASC (ascending) after each column name in the ORDER BY clause.
380 381
    If not specified, ASC is assumed by default.
   </para>
382 383 384 385
  </refsect2>
  
  <refsect2 id="R2-SQL-UNION-2">
   <refsect2info>
386
    <date>1998-09-24</date>
387
   </refsect2info>
388
   <title id="union-title">
389
    UNION Clause
390 391 392
   </title>
   <para>
    <synopsis>
393 394
<replaceable class="PARAMETER">table_query</replaceable> UNION [ ALL ] <replaceable class="PARAMETER">table_query</replaceable>
    [ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
395
    </synopsis>
396

397 398
    where
    <replaceable class="PARAMETER">table_query</replaceable>
399 400
    specifies any select expression without an ORDER BY clause.
   </para>
401 402
    
   <para>
403 404
    The UNION clause allows the result to be the collection of rows
    returned by the queries involved. (See UNION clause).
405 406
    The two tables that represent the direct operands of the UNION must
    have the same number of columns, and corresponding columns must be
407 408
    of compatible data types.
   </para>
409 410 411
    
   <para>
    By default, the result of UNION does not contain any duplicate rows
412 413
    unless the ALL clause is specified.
   </para>
414 415
    
   <para>
416
    Multiple UNION operators in the same SELECT statement are
417
    evaluated left to right.
418
    Note that the ALL keyword is not global in nature, being 
419 420 421
    applied only for the current pair of table results.
   </para>

422 423 424 425 426 427
  </refsect2>

  <refsect2 id="R2-SQL-INTERSECT-2">
   <refsect2info>
    <date>1998-09-24</date>
   </refsect2info>
428
   <title id="intersect-title">
429 430 431 432
    INTERSECT Clause
   </title>
   <para>
    <synopsis>
433 434
<replaceable class="PARAMETER">table_query</replaceable> INTERSECT <replaceable class="PARAMETER">table_query</replaceable>
    [ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
435 436 437 438
    </synopsis>
    
    where
    <replaceable class="PARAMETER">table_query</replaceable>
439 440 441
    specifies any select expression without an ORDER BY clause.
   </para>

442 443
   <para>
    The INTERSECT clause allows the result to be all rows that are 
444
    common to the involved queries.
445 446
    The two tables that represent the direct operands of the INTERSECT must
    have the same number of columns, and corresponding columns must be
447 448
    of compatible data types.
   </para>
449 450 451 452
    
   <para>
    Multiple INTERSECT operators in the same SELECT statement are
    evaluated left to right.
453
   </para>
454 455 456 457 458 459
  </refsect2>

  <refsect2 id="R2-SQL-EXCEPT-2">
   <refsect2info>
    <date>1998-09-24</date>
   </refsect2info>
460
   <title id="except-title">
461 462 463 464
    EXCEPT Clause
   </title>
   <para>
    <synopsis>
465
<replaceable class="PARAMETER">table_query</replaceable> EXCEPT <replaceable class="PARAMETER">table_query</replaceable>
466 467
     [ ORDER BY <replaceable class="PARAMETER">column</replaceable> [ ASC | DESC ] [, ...] ]
    </synopsis>
468
    
469 470
    where
    <replaceable class="PARAMETER">table_query</replaceable>
471 472 473
    specifies any select expression without an ORDER BY clause.
   </para>

474 475 476 477 478
   <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
479 480 481
    of compatible data types.
   </para>

482 483 484
   <para>
    Multiple EXCEPT operators in the same SELECT statement are
    evaluated left to right.
485
   </para>
486
  </refsect2>
487
 </refsect1>
488

489 490 491 492
 <refsect1 id="R1-SQL-SELECT-2">
  <title>
   Usage
  </title>
493

494 495 496
  <para>
   To join the table <literal>films</literal> with the table
   <literal>distributors</literal>:
497 498

   <programlisting>
499 500 501
SELECT f.title, f.did, d.name, f.date_prod, f.kind
    FROM distributors d, films f
    WHERE f.did = d.did
502

T
Thomas G. Lockhart 已提交
503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521
title                    |did|name            | date_prod|kind
-------------------------+---+----------------+----------+----------
The Third Man            |101|British Lion    |1949-12-23|Drama
The African Queen        |101|British Lion    |1951-08-11|Romantic
Une Femme est une Femme  |102|Jean Luc Godard |1961-03-12|Romantic
Vertigo                  |103|Paramount       |1958-11-14|Action
Becket                   |103|Paramount       |1964-02-03|Drama
48 Hrs                   |103|Paramount       |1982-10-22|Action
War and Peace            |104|Mosfilm         |1967-02-12|Drama
West Side Story          |105|United Artists  |1961-01-03|Musical
Bananas                  |105|United Artists  |1971-07-13|Comedy
Yojimbo                  |106|Toho            |1961-06-16|Drama
There's a Girl in my Soup|107|Columbia        |1970-06-11|Comedy
Taxi Driver              |107|Columbia        |1975-05-15|Action
Absence of Malice        |107|Columbia        |1981-11-15|Action
Storia di una donna      |108|Westward        |1970-08-15|Romantic
The King and I           |109|20th Century Fox|1956-08-11|Musical
Das Boot                 |110|Bavaria Atelier |1981-11-11|Drama
Bed Knobs and Broomsticks|111|Walt Disney     |          |Musical
522 523 524
   </programlisting>
  </para>

525 526
  <para>
   To sum the column <literal>len</literal> of all films and group
527
   the results by <literal>kind</literal>:
528 529

   <programlisting>
530
SELECT kind, SUM(len) AS total FROM films GROUP BY kind;
531 532 533 534 535 536 537 538

    kind      |total
    ----------+------
    Action    | 07:34
    Comedy    | 02:58
    Drama     | 14:28
    Musical   | 06:42
    Romantic  | 04:38
539 540
   </programlisting>
  </para>
541 542 543

  <para>
   To sum the column <literal>len</literal> of all films, group
544
   the results by <literal>kind</literal> and show those group totals
545
   that are less than 5 hours:
546 547

   <programlisting>
548 549 550 551
SELECT kind, SUM(len) AS total
    FROM films
    GROUP BY kind
    HAVING SUM(len) < INTERVAL '5 hour';
552 553 554 555 556

    kind      |total
    ----------+------
    Comedy    | 02:58
    Romantic  | 04:38
557 558 559
   </programlisting>
  </para>

560
  <para>
561
   The following two examples are identical ways of sorting the individual
562 563
   results according to the contents of the second column
   (<literal>name</literal>):
564 565

   <programlisting>
566 567
SELECT * FROM distributors ORDER BY name;
SELECT * FROM distributors ORDER BY 2;
568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583

    did|name
    ---+----------------
    109|20th Century Fox
    110|Bavaria Atelier
    101|British Lion
    107|Columbia
    102|Jean Luc Godard
    113|Luso films
    104|Mosfilm
    103|Paramount
    106|Toho
    105|United Artists
    111|Walt Disney
    112|Warner Bros.
    108|Westward
584 585
   </programlisting>
  </para>
586 587 588 589 590 591 592

  <para>
   This example shows how to obtain the union of the tables
   <literal>distributors</literal> and
   <literal>actors</literal>, restricting the results to those that begin
   with letter W in each table.  Only distinct rows are to be used, so the
   ALL keyword is omitted:
593 594

   <programlisting>
595
    --        distributors:                actors:
596 597 598 599 600 601
    --        did|name                     id|name
    --        ---+------------             --+--------------
    --        108|Westward                  1|Woody Allen
    --        111|Walt Disney               2|Warren Beatty
    --        112|Warner Bros.              3|Walter Matthau
    --        ...                           ...
602

603
SELECT distributors.name
604 605
    FROM   distributors
    WHERE  distributors.name LIKE 'W%'
606 607 608 609
UNION
SELECT actors.name
    FROM   actors
    WHERE  actors.name LIKE 'W%'
610

T
Thomas G. Lockhart 已提交
611 612 613 614 615 616 617 618
name
--------------
Walt Disney
Walter Matthau
Warner Bros.
Warren Beatty
Westward
Woody Allen
619 620
   </programlisting>
  </para>
621 622 623 624 625 626 627 628 629 630
 </refsect1>
 
 <refsect1 id="R1-SQL-SELECT-3">
  <title>
   Compatibility
  </title>
  <para>
  </para>
  
  <refsect2 id="R2-SQL-SELECT-4">
631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649
   <refsect2info>
    <date>1998-09-24</date>
   </refsect2info>
   <title>
    <acronym>Extensions</acronym>
   </title>

   <para>
<productname>Postgres</productname> allows one to omit 
the <command>FROM</command> clause from a query. This feature
was retained from the original PostQuel query language:
  <programlisting>
SELECT distributors.* WHERE name = 'Westwood';

    did|name
    ---+----------------
    108|Westward
  </programlisting>
   </para>
650
  </refsect2>
651 652

  <refsect2 id="R2-SQL-SELECT-5">
653
   <refsect2info>
654
    <date>1998-09-24</date>
655 656 657 658 659 660 661 662 663 664 665 666
   </refsect2info>
   <title>
    <acronym>SQL92</acronym>
   </title>
   <para>
   </para>
   
   <refsect3 id="R3-SQL-SELECT-1">
    <refsect3info>
     <date>1998-04-15</date>
    </refsect3info>
    <title>
667
     SELECT Clause
668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684
    </title>
    <para>
     In the <acronym>SQL92</acronym> standard, the optional keyword "AS"
     is just noise and can be 
     omitted without affecting the meaning.
     The <productname>Postgres</productname> parser requires this keyword when
     renaming columns because the type extensibility features lead to
     parsing ambiguities
     in this context.</para>
     
    <para>
     In the <acronym>SQL92</acronym> standard, the new column name 
     specified in an
     "AS" clause may be referenced in GROUP BY and HAVING clauses.
     This is not currently
     allowed in <productname>Postgres</productname>.
    </para>
685 686 687 688
     
    <para>
     The DISTINCT ON phrase is not part of <acronym>SQL92</acronym>.
    </para>
689 690 691 692
   </refsect3>

   <refsect3 id="R3-SQL-UNION-1">
    <refsect3info>
693
     <date>1998-09-24</date>
694 695
    </refsect3info>
    <title>
696
     UNION Clause
697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719
    </title>
    <para>
     The <acronym>SQL92</acronym> syntax for UNION allows an
     additional CORRESPONDING BY clause:
     <synopsis> 
<replaceable class="PARAMETER">table_query</replaceable> UNION [ALL]
    [CORRESPONDING [BY (<replaceable class="PARAMETER">column</replaceable> [,...])]]
    <replaceable class="PARAMETER">table_query</replaceable>
     </synopsis></para>

    <para>
     The CORRESPONDING BY clause is not supported by
     <productname>Postgres</productname>.
    </para>
   </refsect3>
   
  </refsect2>
 </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
720
sgml-omittag:nil
721 722 723 724 725 726 727 728 729 730 731
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:"/usr/lib/sgml/catalog"
sgml-local-ecat-files:nil
End:
732
-->