在下面的查詢中,我需要對sortest_tesc_code排序順序進行硬編碼,如 order by case 陳述句中所示。這有效,但我還需要第二次排序,以便多個sortest_tesc_code值按sortest_test_date降序排序。如何添加第二個排序?
SELECT stvtesc_desc testname,
nvl(sortest_test_score, '-') testscore,
nvl(sortest_tesc_code, ' ') placement,
nvl(SORTEST_TSRC_CODE, ' ') method_cocc,
nvl(TO_CHAR(sortest_test_date,'DD-MON-YYYY'),' - ') testdate
FROM stvtesc, sortest_add
WHERE (stvtesc_vr_msg_no <> '999' or stvtesc_vr_msg_no is null)
AND sortest_tesc_code not in ('CASM','CASR','CASW')
AND sortest_tesc_code = stvtesc_code
AND sortest_pidm = testpidm
ORDER BY
case
when sortest_tesc_code = 'PLM' then 1
when sortest_tesc_code = 'PLW' then 2
when sortest_tesc_code = 'MEX' then 3
when sortest_tesc_code = 'WEX' then 4
when sortest_tesc_code = 'BWC' then 5
when sortest_tesc_code = 'BWX' then 6
when sortest_tesc_code = 'OOC' then 7
when sortest_tesc_code = 'HSRT' then 8
when sortest_tesc_code like 'TE%' then 9
when sortest_tesc_code = 'COMP' then 10
end;
sortest_test_date 的查詢結果沒有按照 sortest_tesc_code PLM 的需要排序:
Placement Level Math 015 PLM DSP 14-APR-2018
Placement Level Math 018 PLM ALKS 20-MAY-2020
Placement Level Math 010 PLM DSP 15-MAY-2019
Placement Level Writing 009 PLW DSP 20-MAY-2019
uj5u.com熱心網友回復:
那是因為您沒有指示 Oracle 執行此操作。你只按sortest_tesc_code& are missing排序sortest_test_date,即
ORDER BY
case
when sortest_tesc_code = 'PLM' then 1
when sortest_tesc_code = 'PLW' then 2
when sortest_tesc_code = 'MEX' then 3
when sortest_tesc_code = 'WEX' then 4
when sortest_tesc_code = 'BWC' then 5
when sortest_tesc_code = 'BWX' then 6
when sortest_tesc_code = 'OOC' then 7
when sortest_tesc_code = 'HSRT' then 8
when sortest_tesc_code like 'TE%' then 9
when sortest_tesc_code = 'COMP' then 10
end,
sortest_test_date --> this
;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/338949.html
上一篇:Presto-插入缺失的時間戳
下一篇:SQL中的分組IF陳述句
