An
ORDER BY
clause in
SQL specifies that a SQL
SELECT
statement returns a
result set
An SQL result set is a set of rows from a database, as well as metadata about the query such as the column names, and the types and sizes of each column. Depending on the database system, the number of rows in the result set may or may not be kn ...
with the rows being sorted by the values of one or more columns. The sort criteria do not have to be included in the result set. The sort criteria can be expressions, including column names,
user-defined functions, arithmetic operations, or
CASE
expressions. The expressions are evaluated and the results are used for the sorting, i.e., the values stored in the column or the results of the function call.
ORDER BY
is the ''only'' way to sort the rows in the result set. Without this clause, the relational
database system
In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases span ...
may return the rows in any order. If an ordering is required, the
ORDER BY
must be provided in the
SELECT
statement sent by the application. Although some database systems allow the specification of an
ORDER BY
clause in subselects or
view
A view is a sight or prospect or the ability to see or be seen from a particular place.
View, views or Views may also refer to:
Common meanings
* View (Buddhism), a charged interpretation of experience which intensely shapes and affects thou ...
definitions, the presence there has no effect. A view is a logical relational table, and the
relational model
The relational model (RM) is an approach to managing data using a structure and language consistent with first-order predicate logic, first described in 1969 by English computer scientist Edgar F. Codd, where all data is represented in terms of tup ...
mandates that a table is a set of rows, implying no sort order whatsoever. The only exception are constructs like
ORDER BY ORDER OF ...
(not standardized in
SQL:2003) which allow the propagation of sort criteria through nested subselects.
The SQL standard's core functionality does not explicitly define a default sort order for
Null
Null may refer to:
Science, technology, and mathematics Computing
*Null (SQL) (or NULL), a special marker and keyword in SQL indicating that something has no value
*Null character, the zero-valued ASCII character, also designated by , often used ...
s. With the
SQL:2003 extension T611, "Elementary OLAP operations", nulls can be sorted before or after all data values by using the
NULLS FIRST
or
NULLS LAST
clauses of the
ORDER BY
list, respectively. Not all DBMS vendors implement this functionality, however. Vendors who do not implement this functionality may specify different treatments for Null sorting in the DBMS.
Structure
ORDER BY ... DESC
will order in descending order, otherwise ascending order is used. (The latter may be specified explicitly using
ASC
.)
Examples
SELECT * FROM Employees
ORDER BY LastName, FirstName
This sorts by the LastName field, then by the FirstName field if LastName matches.
References
SQL keywords
Articles with example SQL code
{{compu-lang-stub