[SQL] 오라클 SQL의 맞춤 주문
SQL오라클 SQL의 맞춤 주문
나는 통화에 따라 주문 거래해야합니다. 그러나 나는 항상 상단에오고, 나머지는 오름차순을 주문해야하는 USD하게하여 사용자 정의 순서를 구현해야합니다.
예를 들어 :
같이 분류한다 :
이 문제를 해결할 수있는 간단한 방법이 있나요?
해결법
-
==============================
1.간단하게이 자격이 있는지 몰라 :
간단하게이 자격이 있는지 몰라 :
order by case when currency = 'USD' then 1 when currency = 'BHT' then 2 when currency = 'JPY' then 3 when currency = 'MYR' then 4 else 5 end
또는 더 컴팩트하지만 오라클 특정 비트 :
order by decode(currency, 'USD', 1, 'BHT', 2, 'JPY', 3, 'MYR', 4, 5)
정의 정렬 순서로 번호를 사용하여 상기 용액의 경우 / 디코드 식 올바르게 정렬 자동 통화를 언급하지 않을 것이다.
단순히 앞에 USD를 넣고 나머지는 신경 쓰지하려면 "생성"주문 기준은 문자 값이 될뿐만 아니라해야합니다. 당신은이 경우 다음을 사용할 수 있습니다 :
order by case when currency = 'USD' then '001' else currency end
어떤에 "알파벳"순서를 사용합니다. 문자가 숫자 숫자 후 분류되어 있기 때문에이 작동합니다. (대신에 '001'의 'AAA'를 사용하면 잘 작동).
-
==============================
2.귀하의 종류가 "유연"이고 모든 통화는 이렇게 작동합니다 확인하십시오 :
귀하의 종류가 "유연"이고 모든 통화는 이렇게 작동합니다 확인하십시오 :
SELECT <columns> FROM <tableName> ORDER BY DECODE(currencyColumn,'USD', 1, 2), currencyColumn
-
==============================
3.당신은 시작 또는 끝 부분에 특정 값을 정렬에 흥미 있지만, 자신의 그룹에 분류 사람들이있는 경우,이 일을 더 자세한 방법 :
당신은 시작 또는 끝 부분에 특정 값을 정렬에 흥미 있지만, 자신의 그룹에 분류 사람들이있는 경우,이 일을 더 자세한 방법 :
order by case when currency in ('USD', 'CAD') then '000'||currency when currency in ('ZWD', 'HTG') then 'ZZZ'||currency else currency end
이 목록의 상단에있는 USD와 CAD를 넣어 것입니다 하단에 ZWD 및 HTG을 (분류), 나머지는 그 사이에 분류.
-
==============================
4.어쩌면 이것은 당신을 도울 것입니다 :
어쩌면 이것은 당신을 도울 것입니다 :
order by decode(currency, 'USD', 1, 2)
또는 케이스를 사용
order by case when currency = 'USD' then 1 else 2 end
-
==============================
5.MySQL은 기능 분야 ()과 같은 정규 표현식으로 하나 더 변형 :
MySQL은 기능 분야 ()과 같은 정규 표현식으로 하나 더 변형 :
select meas_code, to_number(regexp_replace(meas_code, replace('(meas1,meas2,meas3)', ',', '|'), instr(replace('(meas1,meas2,meas3)', ',', '|'), meas_code))) ordr from (select cast(column_value as varchar2(10)) as meas_code from xmltable('''meas1'',''meas2'',''meas3''')) order by 2
-
==============================
6.당신은 다음 작업을 수행 할 수 있습니다 :
당신은 다음 작업을 수행 할 수 있습니다 :
SELECT * FROM yourtable ORDER BY REPLACE(FIND_IN_SET(currency,'USD,BHT,JPY,MYR'),0,'Z')
-
==============================
7.나는 그러나 여러 열, 동일한 작업을 수행하는 데 필요한, 다음과 같은 간단한 추가와 함께, 그르 W의 대답이위한 최선의 발견 :
나는 그러나 여러 열, 동일한 작업을 수행하는 데 필요한, 다음과 같은 간단한 추가와 함께, 그르 W의 대답이위한 최선의 발견 :
SELECT <columns> FROM <tableName> ORDER BY DECODE(currencyColumn,'USD', 1, 2), currencyColumn, anotherColumn;
from https://stackoverflow.com/questions/13339589/custom-order-in-oracle-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 그것은 다른 아이에 의해 참조되어 있지 않은 경우 삭제 부모 (0) | 2020.05.22 |
---|---|
[SQL] 공간을 무시 쿼리 (0) | 2020.05.22 |
[SQL] 어떻게 오라클 VARCHAR 값의 문자의 발생 수를 계산하려면? (0) | 2020.05.22 |
[SQL] MySQL은 : 어떻게 특정 지점에서 자동 증가를 시작합니까? (0) | 2020.05.22 |
[SQL] SQL 테이블이 존재하는지 확인 (0) | 2020.05.22 |