Ir al contenido principal

ORDENAMIENTO ASC Y DESC ok

Ordenamiento Ascendente es natural para muchos tipos de datos y por lo tanto el ordenamiento por defecto si la clausula ORDER BY es especificada. Un ordenamiento ascendente para números es de menor al mayor, mientras que para fechas es desde la más vieja a la mas reciente y alfabéticamente para caracteres. La primera forma de la clausula  ORDER BY muestra que el resultado puede ser ordenado mediante una o mas columna o expresiones.

ORDER BY col(s) | expr;

Los datos seleccionados pueden ser ordenados mediante cualquiera de las columnas de las tablas en la clausula FROM, incluyendo los que no aparecen en la clausula SELECT. 

ASC.  Permite ordenar una columna en forma ascendente.
DESC. Permite ordenar una columna en forma descendente.
NULL FIRST. Los valores Null de la columna ordenada son mostrados primero.
NULL LAST. Los valores Null de la columna ordenada son mostrados hasta el final.

El comportamiento por defecto del ordenamiento es ASC para cualquier columna en la clausula ORDER BY. NULLS LAST para ordenamiento ascendente es por defecto. NULLS FIRST para ordenamiento descendente es por defecto.
Cuando ordenamos mediante una expresión si esta aparece en la clausula SELECT podemos utilizar un alias y colocar ese alias en la clausula ORDER BY

Ejemplos:


-- ESQUEMA HR

-- NUMERICO
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY commission_pct; -- DEFAULT: ASC NULLS LAST
-- CARACTER
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY first_name;     -- DEFAULT: ASC NULLS LAST
-- FECHA
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY hire_date;      -- DEFAULT: ASC NULLS LAST

-- NUMERICO ASC
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY commission_pct ASC;  -- DEFAULT: NULLS LAST
-- NUMERICO DESC
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY commission_pct DESC; -- DEFAULT: NULLS FIRST

-- CARACTER ASC
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY first_name ASC;      -- DEFAULT: NULLS LAST
-- CARACTER DESC
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY first_name DESC;     -- DEFAULT: NULLS FIRST

-- FECHA ASC
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY hire_date ASC;       -- DEFAULT: NULLS LAST
-- FECHA DESC
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY hire_date DESC;      -- DEFAULT: NULLS LAST

-- NUMERICO ASC
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY commission_pct ASC NULLS LAST;
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY commission_pct ASC NULLS FIRST;

-- NUMERICO DESC
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY commission_pct DESC NULLS FIRST;
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY commission_pct DESC NULLS LAST;

-- CARACTER ASC
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY first_name ASC NULLS LAST
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY first_name ASC NULLS FIRST

-- CARACTER DESC
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY first_name DESC NULLS FIRST
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY first_name DESC NULLS LAST

-- FECHA ASC
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY hire_date ASC NULLS LAST
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY hire_date ASC NULLS FIRST
-- FECHA DESC
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY hire_date DESC NULLS FIRST
SELECT employee_id, first_name, last_name, hire_date, commission_pct 
FROM employees ORDER BY hire_date DESC NULLS LAST;

Comentarios