En ocasiones es
necesario ordenar los registros devueltos o recuperados de la consulta.
Con la cláusula ORDER BY se puede ordenar los registros recuperados de forma
ASC : Ascendente “Esta forma es la que por defecto usa ORACLE” y
DESC : Orden descendente.
La cláusula ORDER
BY es la última que se ubica en una consulta SQL.
Si no se usa la
cláusula ORDER BY, el orden de los registros recuperados es indefinido.
Se puede usar la
palabra clave NULLS FIRST O NULLS LAST para indicar que los valores nulos de la
columna que se están ordenando, se muestren al principio o al final.
La estructura de
una consulta con la cláusula ORDER BY es:
SELECT expresión
FROM tabla
[WHERE condición o condiciones]
[ORDER BY {columnas, expresiones, posición numérica}
[ASC|DESC]]
Miremos algunos
ejemplos:
SELECT
last_name
,job_id
,salary
FROM hr.employees
WHERE salary < 3000
ORDER BY last_name;
Por defecto se
ordena en orden ascendente, si usamos la palabra clave ASC obtendríamos el mismo resultado.
SELECT
last_name
,job_id
,salary
FROM hr.employees
WHERE salary < 3000
ORDER BY last_name
ASC;
Si usamos la palabra clave DESC ordena de mayor a
menor.
SELECT
last_name
,job_id
,salary
FROM hr.employees
WHERE salary < 3000
ORDER BY last_name
DESC;
Los valores
ordenados para las columnas de números es en orden ascendente desde el 0 hasta
Infinito, para los valores de cadena de caracteres es de la A a la Z, para los
valores de fechas van primero las fechas anteriores, es decir: va primero 13-JAN-01
que 21-APR-08
Veamos un ejemplo
de cómo se usa NULLS FIRST o NULLS LAST
SELECT
last_name
,hire_date
,department_id
FROM hr.employees
ORDER BY
department_id DESC NULLS FIRST;
Si usamos NULLS FIRST dejamos los nulos al inicio del resultado o de
los registros recuperados.
Por el
contrario NULLS LAST los deja al final de los registros
recuperados.
SELECT
last_name
,hire_date
,department_id
FROM hr.employees
ORDER BY
department_id DESC NULLS LAST;
Ordenar por posición numérica
Así como
podemos ordenar por el nombre de la columna, también podemos ordenar por orden
numérico,
En la
siguiente consulta vamos a analizar el posicionamiento o como está definido el
orden numérico:
SELECT
last_name
,hire_date
,department_id
FROM hr.employees
ORDER BY 1;
Cuando
hablamos de ordenamiento numérico definimos que las columnas que se van a
consultar o mostrar, tienen o se les asigna un valor numérico, para el caso de
nuestra consulta:
last_name : tiene el numero 1
hire_date : tiene
el numero 2
hire_date : tiene el numero 3
department_id : tiene el numero 4
Si deseamos ordenar
por la columna hire_date debemos usar
ORDER BY 2 así:
SELECT
last_name
,hire_date
,department_id
FROM hr.employees
ORDER BY 2;
El resultado
de esta consulta es:
La proxima publicacion : Variables de sustitución (Substitution variables )
No hay comentarios:
Publicar un comentario