multiple developer desc columns asc database oracle sorting

database - developer - Oracle ordena NULL LAST por defecto



order by sql developer (3)

¿Hay alguna manera de establecer que el orden predeterminado utilizado por Oracle sea NULL LAST (o NULL FIRST ), sin tener que ponerlo en cada consulta?


En orden ascendente, los valores NULL siempre se ordenarán en último lugar


No, no hay manera de habilitar el orden predeterminado sin usar la cláusula order by , lo que le permite poner el último o el primero de NULL . Aquí hay un ejemplo:

  1. 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

  2. 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


No, no hay manera 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 demostrar que sea imposible cambiarlo, 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 controla: 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.

Locale Builder Oracle le permite crear su propia clasificación personalizada . Tiene muchas opciones, pero ninguna le permite definir cómo se ordenan los NULL. La configuración de los números de Ordenación mayor y Ordenación menor realmente altos o bajos no lo cambia (esperaba que se implementara un valor NULL como un valor grande o pequeño codificado). Puede establecer el orden de clasificación para 0x0000, que es "NULL", pero ese es un tipo diferente de NULL.