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
>
>  
>
>
>   

Responder a