2
respostas

COLUNA NÃO DECLARADA USADA NO ORDER BY

select id from funcionario where departamento_id = 10 order by nome desc; neste caso o campo nome não deveria estar na lista de campos para ser utilizado no order by ? ```

2 respostas

Embora a coluna nome não está nas colunas que serão selecionadas podemos utiliza-la normalmente no where.

Apenas complementando a resposta do Daniel:

SQL> desc pessoas;
Name Type          Nullable Default Comments 
---- ------------- -------- ------- -------- 
ID   NUMBER        Y                         
NOME VARCHAR2(100) Y

O que você não conseguiria fazer, é ordenar pela sequência da coluna, que não é retornada na querie, conforme abaixo:

OK:

SQL> select * from pessoas;

        ID NOME
---------- --------------------------------------------------------------------------------
         1 Trevisolli
         2 Maria

Erro:

select id from pessoas order by 2;

ORA-01785: o item ORDER BY deve ser o número de uma expressão SELECT -list

Agora um cenário de ordenação por sequência ok:

SQL> select id, nome from pessoas order by 2;

        ID NOME
---------- --------------------------------------------------------------------------------
         2 Maria
         1 Trevisolli

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software