oracle中用case when查詢列表


查詢sql語句如下

SELECT * FROM (
SELECT *
,ROW_NUMBER() OVER ( PARTITION BY scene_code ORDER BY (CASE status when 'DRAFT' then 3 when 'PRE' then 5 when 'GRAY' then 7 when 'PROD' then 9 END) DESC ) AS rank_id
FROM fus_recom_config
WHERE status in ('DRAFT','PRE','GRAY','PROD')
) a
WHERE a.rank_id=1
ORDER BY a.gmt_modified DESC
LIMIT 0,200

查詢結果為 當scene_Code相同時,會按status(PROD>GRAY>PRE>DRAFT)返回最高狀態的一條數據,不會同時出現scene_Code相同的多條數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM