none
Ordenação com valor null RRS feed

  • Pergunta

  • Olá amigos,

     

    Existe uma diferença entre o MSSQL e Oracle!
    Quando é feito um order by em uma coluna que possue valores null, o Oracle coloca os nulls por último, já o MSSQL coloca por primeiro.
    Existe alguma maneira de configurar isso no Oracle? ou no MSSQL?
    O que preciso na verdade,  é manter a compatibilidade entre o código para ambos os bancos.

     

    Obrigado.
    Leandro.

    segunda-feira, 1 de dezembro de 2008 15:05

Respostas

  • Olá Tytto,

     

    Infelizmente não há uma forma de configurar isso no SQL Server. Acredito que no ORACLE também não, mas não posso afirmar. O que você pode fazer é alguns pequenos ajustes nas cláusulas SELECT. Ex:

     

    SELECT <Campos> FROM <Tabelas>

    ORDER BY CASE WHEN Campo IS NULL THEN 1 ELSE 0 END, Campo

     

    Esse código criará uma coluna para que quando um determinado campo for nulo, a coluna seja igual a 1 e quando não for nulo seja igual a zero. Se houver uma ordenação por essa coluna, os nulos virão por último.

     

    [ ]s,

     

    Gustavo

    segunda-feira, 1 de dezembro de 2008 15:24

Todas as Respostas

  • Olá Tytto,

     

    Infelizmente não há uma forma de configurar isso no SQL Server. Acredito que no ORACLE também não, mas não posso afirmar. O que você pode fazer é alguns pequenos ajustes nas cláusulas SELECT. Ex:

     

    SELECT <Campos> FROM <Tabelas>

    ORDER BY CASE WHEN Campo IS NULL THEN 1 ELSE 0 END, Campo

     

    Esse código criará uma coluna para que quando um determinado campo for nulo, a coluna seja igual a 1 e quando não for nulo seja igual a zero. Se houver uma ordenação por essa coluna, os nulos virão por último.

     

    [ ]s,

     

    Gustavo

    segunda-feira, 1 de dezembro de 2008 15:24
  • Boa Gustavo,

    Bela solução.
    segunda-feira, 1 de dezembro de 2008 19:28