Eu quero ordenar um texto a seguir na seguinte ordem, mas, depois de tentar a consulta a seguir, ele não está funcionando.
os valores solicitados são "A", "B", "Y", "Z", "a", "b", "y", "z".
Resultado esperado "ZzYyBbAa"
SELECT COL FROM TABLE ORDER BY COL DESC;
SELECT COL FROM TABLE ORDER BY UPPER/LOWER(COL) DESC; Result-> ZzYybBaA
SELECT COL FROM TABLE ORDER BY NLS_UPPER/NLS_LOWER(COL) DESC; Result-> ZzYybBaA
Em primeiro lugar, você pode ordenar pela caixa SUPERIOR (ou INFERIOR) da coluna, mas depois de fazer isso, você precisa classificar pelo próprio texto para obter a ordem da letra inicial; por exemplo:
with sample_data as (select 'A' txt from dual union all
select 'B' txt from dual union all
select 'Y' txt from dual union all
select 'Z' txt from dual union all
select 'a' txt from dual union all
select 'b' txt from dual union all
select 'y' txt from dual union all
select 'z' txt from dual)
select txt
from sample_data
order by upper(txt) desc, txt;
TXT
---
Z
z
Y
y
B
b
A
a
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras