Eu? calmo? Estou tranquilíssimo. Até porque sou um ganhador da Megasena. Tá certo que foi no bolão e minha parte será R$24,00, mas não se pode ter tudo hehehe
O problema de alinhar a esquerda é que isso não daria certo com os nomes. considere esse exemplo mais difícil: 1 2 3 10 20 30 MEL MEL ABEL BETO JCLAUDIO 999000037 999000037 FRANSCISCO Veja como ABEL fica abaixo de MEL. Isso ocorre em virtude de uma ter quatro e a outra 3 posições. Ou seja, a regra que resolve o problema dos números é também aplicada aos nomes e bagunça tudo. Um abraço milionário! Roberto Andre Santos escreveu: > Roberto > > Muita calma nessa hora! rsss > Alguns colegas aqui já mencionaram "alinhar tudo à direita", com a função > LPAD. > Provavelmente isso já resolveria o problema do "1" versus "10"... (se há > caracteres, talvez UPPER também seja necessário). > > Segue um exemplo: > __________________ > > SQL> CREATE TABLE teste (codigo VARCHAR(5)); > > Tabela criada. > > SQL> INSERT INTO teste VALUES ('1'); > > 1 linha criada. > > SQL> INSERT INTO teste VALUES ('10'); > > 1 linha criada. > > SQL> INSERT INTO teste VALUES ('X1'); > > 1 linha criada. > > SQL> INSERT INTO teste VALUES ('1X'); > > 1 linha criada. > > SQL> SELECT * FROM teste > 2 ORDER BY codigo; > > CODIG > ----- > X1 > 1 > 1X > 10 > > SQL> SELECT * FROM teste > 2 ORDER BY LPAD(codigo,5); > > CODIG > ----- > 1 > X1 > 1X > 10 > > SQL> SELECT LPAD(codigo,5) > 2 FROM teste > 3 ORDER BY LPAD(codigo,5); > > LPAD( > ----- > 1 > X1 > 1X > 10 > __________________ > > [ ] > > André > > > > Em 28/11/07, Roberto Amorim <[EMAIL PROTECTED]> escreveu: > >> 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 oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>, >>> >> "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 oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>, >>>> >> "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: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> >>>>> >>>>> >>>> [mailto:oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>] >>>> >> On Behalf Of jlchiappa >> >>>>> Sent: quarta-feira, 28 de novembro de 2007 14:46 >>>>> To: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> >>>>> 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 oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> >>>>> >>>>> >>>> <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/oracle_br@yahoogrupos.com.br/ >>> ---------------------------------------------------------- >>> >>> >>>> O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: >>>> >> http://www.oraclebr.com.br/ >> >>> ---------------------------------------------------------- >>> Links do Yahoo! Grupos >>> >>> >>> >>> >>> >>> >> >> > > > [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/oracle_br@yahoogrupos.com.br/ > -------------------------------------------------------------------------------------------------------------------------- > >> O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: >> http://www.oraclebr.com.br/ >> > ------------------------------------------------------------------------------------------------------------------------ > > Links do Yahoo! Grupos > > > > >