ORDER BY Clause¶
The ORDER BY clause sorts the data returned by a query, by the
specified column list.
<order by> ::=
ORDER BY <order by expression> [ ASC | DESC ]
[, <order by expression> [ ASC | DESC ] ]*
<order by expression> ::=
<field name>
| <expression>
| <field position:integer>
Usually, Virtual DataPort processes the data obtained from the sources
asynchronously. I.e. it can begin sending results to clients without
having to wait to process all the data obtained from the sources.
However, if the query uses ORDER BY and this cannot be pushed down
to the source, the result of the query is generated synchronously. I.e.
the results are not available until all the data from the sources has
been obtained.
In the ORDER BY clause of a query you can indicate:
A name of a field or the alias of a field projected by the query (i.e. in the
SELECTclause of the query).An expression based on the name of the fields or aliases of the projected fields.
The position of the fields in the
SELECTclause by which you want to sort the result.
The ASC and DESC modifiers are optional. If missing, the results
are sorted in an ascending order.
The following query obtains the employees ordered according to the
attribute pay in a descending order.
SELECT *
FROM emp
ORDER BY pay DESC;
In the following query, the order by field is indicated with its
position in the SELECT clause:
SELECT name, pay
FROM emp
ORDER BY 2 DESC;
The index of the first field is 1.
The following query uses an expression in the ORDER BY clause:
SELECT *
FROM internet_inc
ORDER BY lower(summary)
