11<!--
2- $Header: /cvsroot/pgsql/doc/src/sgml/ref/select.sgml,v 1.46 2001/09/14 10:28:09 ishii Exp $
2+ $Header: /cvsroot/pgsql/doc/src/sgml/ref/select.sgml,v 1.47 2001/09/23 03:39:01 momjian Exp $
33Postgres documentation
44-->
55
@@ -29,7 +29,8 @@ SELECT [ ALL | DISTINCT [ ON ( <replaceable class="PARAMETER">expression</replac
2929 [ { UNION | INTERSECT | EXCEPT [ ALL ] } <replaceable class="PARAMETER">select</replaceable> ]
3030 [ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC | USING <replaceable class="PARAMETER">operator</replaceable> ] [, ...] ]
3131 [ FOR UPDATE [ OF <replaceable class="PARAMETER">tablename</replaceable> [, ...] ] ]
32- [ LIMIT { <replaceable class="PARAMETER">count</replaceable> | ALL } [ { OFFSET | , } <replaceable class="PARAMETER">start</replaceable> ]]
32+ [ LIMIT [ <replaceable class="PARAMETER">start</replaceable> , ] { <replaceable class="PARAMETER">count</replaceable> | ALL } ]
33+ [ OFFSET <replaceable class="PARAMETER">start</replaceable> ]
3334
3435where <replaceable class="PARAMETER">from_item</replaceable> can be:
3536
@@ -613,7 +614,8 @@ SELECT name FROM distributors ORDER BY code;
613614 <synopsis>
614615<replaceable class="PARAMETER">table_query</replaceable> UNION [ ALL ] <replaceable class="PARAMETER">table_query</replaceable>
615616 [ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC | USING <replaceable class="PARAMETER">operator</replaceable> ] [, ...] ]
616- [ LIMIT { <replaceable class="PARAMETER">count</replaceable> | ALL } [ { OFFSET | , } <replaceable class="PARAMETER">start</replaceable> ]]
617+ [ LIMIT [ <replaceable class="PARAMETER">start</replaceable> , ] { <replaceable class="PARAMETER">count</replaceable> | ALL } ]
618+ [ OFFSET <replaceable class="PARAMETER">start</replaceable> ]
617619 </synopsis>
618620
619621 where
@@ -662,7 +664,8 @@ SELECT name FROM distributors ORDER BY code;
662664 <synopsis>
663665<replaceable class="PARAMETER">table_query</replaceable> INTERSECT [ ALL ] <replaceable class="PARAMETER">table_query</replaceable>
664666 [ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC | USING <replaceable class="PARAMETER">operator</replaceable> ] [, ...] ]
665- [ LIMIT { <replaceable class="PARAMETER">count</replaceable> | ALL } [ { OFFSET | , } <replaceable class="PARAMETER">start</replaceable> ]]
667+ [ LIMIT [ <replaceable class="PARAMETER">start</replaceable> , ] { <replaceable class="PARAMETER">count</replaceable> | ALL } ]
668+ [ OFFSET <replaceable class="PARAMETER">start</replaceable> ]
666669 </synopsis>
667670
668671 where
@@ -702,7 +705,8 @@ SELECT name FROM distributors ORDER BY code;
702705 <synopsis>
703706<replaceable class="PARAMETER">table_query</replaceable> EXCEPT [ ALL ] <replaceable class="PARAMETER">table_query</replaceable>
704707 [ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC | USING <replaceable class="PARAMETER">operator</replaceable> ] [, ...] ]
705- [ LIMIT { <replaceable class="PARAMETER">count</replaceable> | ALL } [ { OFFSET | , } <replaceable class="PARAMETER">start</replaceable> ]]
708+ [ LIMIT [ <replaceable class="PARAMETER">start</replaceable> , ] { <replaceable class="PARAMETER">count</replaceable> | ALL } ]
709+ [ OFFSET <replaceable class="PARAMETER">start</replaceable> ]
706710 </synopsis>
707711
708712 where
@@ -738,7 +742,7 @@ SELECT name FROM distributors ORDER BY code;
738742 </title>
739743 <para>
740744 <synopsis>
741- LIMIT{ <replaceable class="PARAMETER">count </replaceable>| ALL } [ { OFFSET | , } <replaceable class="PARAMETER">start </replaceable>]
745+ LIMIT[ <replaceable class="PARAMETER">start </replaceable>, ] { <replaceable class="PARAMETER">count </replaceable>| ALL }
742746 OFFSET <replaceable class="PARAMETER">start</replaceable>
743747 </synopsis>
744748
@@ -761,14 +765,14 @@ SELECT name FROM distributors ORDER BY code;
761765 constrains the result rows into a unique order. Otherwise you will get
762766 an unpredictable subset of the query's rows---you may be asking for
763767 the tenth through twentieth rows, but tenth through twentieth in what
764- ordering? You don't know what ordering, unless youspecified ORDER BY.
768+ ordering? You don't know what ordering unless youspecify ORDER BY.
765769 </para>
766770
767771 <para>
768772 As of <productname>Postgres</productname> 7.0, the
769773 query optimizer takes LIMIT into account when generating a query plan,
770774 so you are very likely to get different plans (yielding different row
771- orders) depending on what yougive for LIMIT and OFFSET. Thus, using
775+ orders) depending on what youuse for LIMIT and OFFSET. Thus, using
772776 different LIMIT/OFFSET values to select different subsets of a query
773777 result <emphasis>will give inconsistent results</emphasis> unless
774778 you enforce a predictable result ordering with ORDER BY. This is not