Ir para conteúdo
Fórum Script Brasil

Alexandre_ABS

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Alexandre_ABS

Alexandre_ABS's Achievements

0

Reputação

  1. Boa tarde a todos, Estou com uma duvida no funcionamento do order by do oracle. Quando existem colunas em uma tabela e essa coluna varchar2 recebe um "numero" o Oracle "se perde" no order by. Por exemplo: Tenho a seguinte tabela: CREATE TABLE tb_teste( teste_cod varchar2(25) NOT NULL, teste_descr varchar2(50) NOT NULL, constraint PK_teste PRIMARY KEY (teste_cod) ) ; insert into tb_teste values('A1','A'); insert into tb_teste values('B1','B'); insert into tb_teste values('C1','C'); insert into tb_teste values('D1','D'); insert into tb_teste values('E1','E'); INSERT INTO TB_TESTE VALUES('3F','F'); insert into tb_teste values('G1','G'); insert into tb_teste values('H1','H'); Agora quando eu efetuo o seguinte select: Select * from tb_teste order by teste_cod me traz o seguinte resutado: teste_cod teste_descr ---------------------------------- A1 A B1 B C1 C D1 D E1 E G1 G H1 H 3F F Até aqui tudo bem, pelo que eu entendi ele interpreta que numeros são maiores que letras. No entanto quando eu faço o select desta forma: Select * from tb_teste WHERE teste_cod > 'E1' order by teste_cod me traz o resutado assim: teste_cod teste_descr ---------------------------------- G1 G H1 H Ou seja, com o where ele interpreta que numeros são MENORES que letras ???? Quando eu inverto o sinal de maior para menor, veja: Select * from tb_teste WHERE teste_cod < 'E1' order by teste_cod teste_cod teste_descr ---------------------------------- A1 A B1 B C1 C D1 D 3F F Não entendo por que isso acontece, talvez seja alguma coisa errada no meu select. É a primeira vez que utilizo o Oracle, então peço a ajuda de voçês neste problema.
×
×
  • Criar Novo...