所以我在 mysql 語法(在 mysql DB 上)中有這個函式,我試圖在 Oracle 上運行,但似乎無法在 Oracle 中為 MYSQL“IF”找到類似的函式。
SELECT
table1.PROJECT_ID
max(if(Table2.Typ = 'progress', 'progress',NULL)) AS 'progress',
max(if(Table2.Typ = 'acquired', 'acquired',NULL)) AS 'acquired'
FROM Table1
LEFT JOIN Table2 ON Table2.Name = Table1.Item_Description
GROUP BY PROJECT_ID;
uj5u.com熱心網友回復:
使用CASE運算式(在 ANSI 標準中):
SELECT table1.PROJECT_ID,
max(CASE WHEN Table2.Typ = 'progress' THEN 'progress' ELSE NULL END) AS progress,
max(CASE WHEN Table2.Typ = 'acquired' THEN 'acquired' ELSE NULL END) AS acquired
FROM Table1
LEFT JOIN Table2 ON Table2.Name = Table1.Item_Description
GROUP BY PROJECT_ID;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/489470.html
上一篇:沒有使用CTE獲取所有記錄
