Solución:
No, no hay forma de cambiar el comportamiento predeterminado de NULLS FIRST
y NULLS LAST
:
NULLS LAST es el valor predeterminado para el orden ascendente y NULLS FIRST es el valor predeterminado para el orden descendente.
No puedo probar que sea imposible de cambiar, pero no puedo encontrar una característica de este tipo en los lugares donde es más probable que se implemente.
Opción SQL El manual no menciona nada.
Parámetro Ninguno de los parámetros nls en V$PARAMETER
controlarlo: select * from v$parameter where name like '%nls%';
Parámetro oculto No hay ningún parámetro oculto. Intenté buscar algo como% null% o% sort%, ninguno de ellos parece relevante.
Generador de configuración regional Oracle le permite crear su propia clasificación personalizada. Tiene muchas opciones, pero ninguna de ellas le permite definir cómo se ordenan los NULL. Establecer los números de clasificación principal y clasificación secundaria realmente altos o bajos no lo cambia (esperaba que se implementara un NULL como un valor pequeño o grande codificado de forma rígida). Puede establecer el orden de clasificación para 0x0000, que es “NULL”, pero ese es un tipo diferente de NULL.
No, no hay forma de habilitar el pedido predeterminado sin usar order by
cláusula, que te permite poner NULL
s último o primero. Aquí hay un ejemplo:
-
Orden ascendente
SQL> with t1(col) as( 2 select 1 from dual union all 3 select 2 from dual union all 4 select null from dual union all 5 select 3 from dual 6 ) 7 select * 8 from t1 9 order by col asc nulls last 10 ;
Resultado:
COL ------ 1 2 3 null
-
Orden descendente
SQL> with t1(col) as( 2 select 1 from dual union all 3 select 2 from dual union all 4 select null from dual union all 5 select 3 from dual 6 ) 7 select * 8 from t1 9 order by col desc nulls last 10 ;
Resultado:
COL ---------- 3 2 1 null
En orden ascendente, los valores NULL siempre se ordenarán en último lugar.