반응형
Oracle에서 대/소문자 구분 안 함
다음 텍스트를 다음 순서로 주문하고 싶은데, 다음 쿼리를 시도해보니 작동하지 않습니다.
정렬할 값은 "A", "B", "Y", "Z", "a", "b", "y", "z"입니다.
예상 결과 "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
먼저 열의 대문자(또는 소문자)를 기준으로 순서를 지정할 수 있지만, 한 번 지정한 후에는 텍스트 자체를 기준으로 정렬하여 첫 글자에 순서를 지정해야 합니다. 예:
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
SELECT COL FROM TABLE ORDER BY NLSSORT(COL, 'NLS_SORT=GENERIC_M') DESC
산출량
Z
z
Y
y
B
b
A
a
언급URL : https://stackoverflow.com/questions/30844110/order-by-case-insensitive-in-oracle
반응형
'programing' 카테고리의 다른 글
PowerShell에서 curl 명령을 사용하는 방법은 무엇입니까? (0) | 2023.08.01 |
---|---|
strcpy() 반환 값 (0) | 2023.08.01 |
fragment를 제거하는 방법, 즉 finish()와 동등한 fragment를 제거하는 방법? (0) | 2023.08.01 |
HTML 파일을 WebView로 로드 (0) | 2023.08.01 |
플렉스 베이스와 폭의 차이점은 무엇입니까? (0) | 2023.08.01 |