Olá pessoal,
Estou com uma questão que não consigo resolver.
No meu select tenho um order by onde ordeno pela descrição dos produtos, só que tenho produtos com a seguinte estrutura um numero seguido do nome, por exemplo:
“1-Revestimento” e depois tenho os produtos com somente o nome tipo “Etiqueta” por exemplo, o que preciso é que todos os produtos que comecem pelo número venham por primeiro, ex.:
1-Revestimento
Etiqueta
Mas está sendo ordenando primeiro as letras e depois os números.
Alguém poderia me ajudar?
Desde já agradeço a atenção.
Mostre seu SQL.
Você esperava um comportamento semelhante ao da tabela ASCII (onde os números vêm antes das letras), certo?
Obrigado por responderem.
entanglement, acredito que seja isso mesmo.
Para ordenar do jeito que você precisa, é necessário alterar um parâmetro de sessão chamado NLS_SORT.
Comece a partir daqui:
E faça uma pesquisa para saber que parâmetro é necessário para passar para ALTER SESSION SET …
entanglement, será que não tem como usar este parametro no order by,mais ou menos isso "order by nlssort(produto,‘NLS_SORT=ASCII’); ?
http://docs.oracle.com/cd/B19306_01/server.102/b14225/ch5lingsort.htm#NLSPG005
Legal, tem de usar esse método NLSSORT. Eu não conhecia isso
entanglement, E ai meu chapa, consegui fazer funcionar.
Segue exemplo de como fiz para funcionar.
SELECT * FROM (
SELECT ID, PRODUTO, PRECO
FROM PRODUTOS)
ORDER BY ORDER BY NLSSORT(PRODUTO,'NLS_SORT=BINARY_AI');
Muito obrigado a todos que de dispuseram a me responder.