Só que o campo é cvarchar e tem string. Então retornará invalid number. Não tem jeito mesmo. Só fazendo uma função como eu disse no outro email. Só que aí a consulta fica se arrastando. A função percorreria toda a string e caso só houvesse números ela aplicaria a máscara com o formato, tal como o Chiappa falou. Se contivesse caracteres não numéricos ela retornaria a própria string, sem mudanças . A função seria apenas para a ordenação. Roberto
wilsonteixeira2000 escreveu: > Luiz Ribeiro, boa tarde! > > > Existe um tecnica "POG" para atender este tipo de situação que atende > muitas vezes. Adicionar caracteres a direita do valor ex: > > tabela A: > Codigo varchar2 (2), > nome varchar2(10) > > select * from a order by codigo > codigo nome > 1 teste > 10 teste 10 > 2 teste 2 > > select * from order by to_char(codigo,'00') > codigo nome > 1 teste > 2 teste 2 > 10 teste 10 > > > --- Em [email protected], "jlchiappa" <[EMAIL PROTECTED]> > escreveu > >> Aí fica difícil, nesses casos o que vc quer - ordenar só pela parte >> numérica, desprezando os caracteres ? Desprezar as linhas que >> contenham não-números ? Transformar a porção da string que contém >> dígitos em número ? E se houver , ou . entre os números, o que fazer >> ?? Qual é a lógica que vc pretende ? >> >> []s >> >> Chiappa >> --- Em [email protected], "Luiz Ribeiro" <luiz.ribeiro@> >> escreveu >> >>> Valeu pela dica, Chiappa, mas é que esse campo pode conter strings >>> >> também, não somente números. >> >>> >>> >>> Obrigado. >>> >>> >>> >>> ________________________________ >>> >>> From: [email protected] >>> >> [mailto:[EMAIL PROTECTED] On Behalf Of jlchiappa >> >>> Sent: quarta-feira, 28 de novembro de 2007 14:46 >>> To: [email protected] >>> Subject: [oracle_br] Re: Order by coluna alfanumérica >>> >>> >>> >>> Se o tamanho máximo da coluna é 3 (digamos), vc poderia pedir : >>> >>> select nnn from TABELA order by to_char(to_number >>> > (COLUNA), 'FM009'); > >>> ==> mas armazenar números em campos string SÓ PODE DAR n+1 >>> probleminhas, desde performance até administração, recomendaria vc >>> parar IMEDIATAMENTE com essa prática, se minimamente possível... >>> >>> []s >>> >>> Chiappa >>> >>> --- Em [email protected] >>> >> <mailto:oracle_br%40yahoogrupos.com.br> , "Luiz Ribeiro" >> > <luiz.ribeiro@> > >>> escreveu >>> >>>> Boa tarde. >>>> >>>> >>>> >>>> Já vi isso na lista, mas não estou conseguindo encontrar. Como >>>> > fazer > >>> para que o resultado abaixo, com order by numa coluna varchar2: >>> >>>> >>>> SQL> select coluna from tabela order by coluna; >>>> >>>> >>>> >>>> 1 >>>> >>>> ---------- >>>> >>>> 1 >>>> >>>> 10 >>>> >>>> 2 >>>> >>>> 20 >>>> >>>> 3 >>>> >>>> 30 >>>> >>>> >>>> >>>> Tenha como resultado o seguinte: >>>> >>>> >>>> >>>> SQL> select coluna from tabela order by coluna; >>>> >>>> >>>> >>>> 1 >>>> >>>> ---------- >>>> >>>> 1 >>>> >>>> 2 >>>> >>>> 3 >>>> >>>> 10 >>>> >>>> 20 >>>> >>>> 30 >>>> >>>> >>>> >>>> Obrigado, >>>> >>>> >>>> >>>> Luiz >>>> >>>> >>>> >>>> [As partes desta mensagem que não continham texto foram >>>> > removidas] > >>> >>> >>> >>> >>> [As partes desta mensagem que não continham texto foram removidas] >>> >>> > > > > > >> Apostilas » Dicas e Exemplos » Funções » Mundo Oracle » Package » Procedure >> » Scripts » Tutoriais acesse: >> http://www.oraclebr.com.br/codigo/ListaCodigo.php >> > -------------------------------------------------------------------------------------------------------------------------- > >> Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira >> responsabilidade de seus remetentes. >> > Acesse: http://www.mail-archive.com/[email protected]/ > -------------------------------------------------------------------------------------------------------------------------- > >> O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: >> http://www.oraclebr.com.br/ >> > ------------------------------------------------------------------------------------------------------------------------ > > Links do Yahoo! Grupos > > > > >
