2015-06-15 5 views
5

मैं निम्नलिखित क्रम में निम्न पाठ ऑर्डर करना चाहता हूं, लेकिन निम्न क्वेरी को आजमाने के बाद यह काम नहीं कर रहा है।ऑरैकल में असंवेदनशील मामले के अनुसार आदेश

ऑर्डर करने के लिए मान "ए", "बी", "वाई", "जेड", "ए", "बी", "वाई", "जेड" है।

अपेक्षित परिणाम "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 

उत्तर

8

सबसे पहले, आप ऊपरी (या कम) स्तंभ के मामले से आदेश कर सकते हैं, लेकिन एक बार आपको लगता है कि किया है, आप तब तक सॉर्ट करने के लिए की जरूरत है प्रारंभिक पत्र पर आदेश प्राप्त करने के लिए खुद को पाठ; उदाहरण:

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 
संबंधित मुद्दे