SergioC 0 Denunciar post Postado Fevereiro 7, 2014 Boa noite a todos. Tenho uma tabela com os seguintes registros: --------------------------- | ID | Nome | Idade | --------------------------- | 1 | João | 25 | | 2 | Paulo | NULL | | 4 | Maria | NULL | | 7 | Pedro | 18 | | 8 | Carlos | 15 | | 9 | Ana | 12 | -------------------------- O caso é que eu quero que o Select retorne a tabela inteira com as seguintes regras: Primeiro os registros que o campo Idade forem NOT NULL com o campo Nome em ordem alfabética; Depois os registros que o campo Idade forem NULL com o campo Nome em ordem alfabética; Tentei o seguinte código e não funcionou: ------------------------------------------------------------------------------------------------ (SELECT ID, Nome, Idade FROM tabela WHERE Idade IS NOT NULL ORDER BY Nome) UNION (SELECT ID, Nome, Idade FROM tabela WHERE Idade IS NULL ORDER BY Nome); ------------------------------------------------------------------------------------------------ Retorna os NOT NULL primeiro, mas não em ordem alfabética O resultado esperado é este: --------------------------- | ID | Nome | Idade | --------------------------- | 9 | Ana | 12 | | 8 | Carlos | 15 | | 1 | João | 25 | | 7 | Pedro | 18 | | 4 | Maria | NULL | | 2 | Paulo | NULL | -------------------------- Espero ter explicado corretamente. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Fevereiro 7, 2014 ... Order by (case when idade is not null then 0 else 1 end),nome Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Fevereiro 7, 2014 SELECT ID, Nome, Idade FROM tabela Order by (case when idade is not null then 0 else 1 end),nome Compartilhar este post Link para o post Compartilhar em outros sites
SergioC 0 Denunciar post Postado Fevereiro 18, 2014 Bom dia Motta. Muito obrigado! Resolveu certinho a minha dúvida. Grande abraço! Sergio C. Compartilhar este post Link para o post Compartilhar em outros sites