sexta-feira, 10 de outubro de 2014

Order BY em campo Varchar2 [Oracle];

Senhores, Boa tarde.

Aqui vai uma dica para o tipo de ordenação do comando ORDER BY.
Se ainda não ficou claro do que eu estou falando, vamos imaginar um campo Varchar2, contendo String, números e etc.

No ORDER BY, Como que iriam vir ordenados ?


















No meu caso retornou primeiro String e depois os números, isto ocorre pelo o valor que está definido do parâmetro NLS_SORT.

select * from nls_session_parameters;
















Se caso precisar que os caracteres numéricos apareçam antes dos caracteres alfabéticos, podemos fazer isso de 2 jeitos - Alterando a Sessão ou por uma Função própria do Oracle.

1- Alterando a Sessão
ALTER SESSION SET NLS_SORT='BINARY';

2-Pela Função NLSSORT
Ex: select nome from produto order by NLSSORT(nome,'NLS_SORT=BINARY');
















Se for necessário que seja ordenado de alguma outra maneira, nesta tabela mostra como seria ordenado se o NLS_SORT fosse definido para WEST_EUROPEAN, BINARY, BINARY_CI e BINARY_AI.














Abs!
Bruno Duarte.

Nenhum comentário:

Postar um comentário