Order By

Als je de rijen gegarandeerd in een bepaalde volgorde wil zien, dan gebruik je daarvoor een ORDER BY.

 

De standaard volgorde is oplopend. De term daarvoor is ASCENDING.

Numerieke waarden worden getoond van klein naar groot.

Datums worden getoond van oud naar nieuw.

Karakters worden getoond op alfabetische volgorde.

NULL waarden komen eerst als er standaard op ASCENDING wordt gesorteerd.

Het tegenovergestelde van ASCENDING is DESCENDING, kortweg DESC.

 

De ORDER BY is de laatste regel van de query. Tenzij er nog een LIMIT gebruikt wordt, want dan komt LIMIT op de allerlaatste regel.

 

SELECT last_name, hire_date

FROM employees

ORDER BY hire_date;

 

clip0073

 

 

De kolom waarop je sorteert hoeft niet opgenomen te zijn in de SELECT op de bovenste regel. Je kunt sorteren op elke kolom van de tabel.

 

SELECT employee_id, first_name

FROM employees

WHERE employee_id < 105

ORDER BY last_name;

 

clip0075

 

 

Het is mogelijk een alias te gebruiken voor de ORDER BY.

 

SELECT last_name, hire_date AS date_started

FROM employees

ORDER BY date_started;

 

clip0076

 

 

Het is mogelijk op meerdere kolommen te sorteren.

 

SELECT department_id, last_name

FROM employees

WHERE department_id <= 50

ORDER BY department_id, last_name;

 

clip0077

 

 

Als je op meerdere kolommen sorteert, kun je ook DESC gebruiken voor elke kolom waar dat is gewenst.

 

SELECT department_id, last_name

FROM employees

WHERE department_id <= 50

ORDER BY department_id DESC, last_name;

 

clip0078

 

 

NULL waarden komen als eerst aan de beurt.

 

SELECT last_name, commission_pct

FROM employees

ORDER BY commission_pct;

 

clip0081

 

 

Het is ook mogelijk te sorteren op het nummer van de kolom op de SELECT regel.

 

SELECT first_name, last_name

FROM employees

ORDER BY 2;

 

clip0082