2011-04-17 66 views
1

我有一個表(在Oracle數據庫)類,就像下面:如何在SELECT語句

department 
---------- 
Finance 
Sales 
Programmer 
Network Admin 
System Support 

我想有看起來像下表中的輸出:

department 
---------- 
Finance 
Sales 
IT (those category other than Finance and Sales will group under 'IT') 

這可能嗎?

回答

4
SELECT DISTINCT 
CASE 
    WHEN department IN ('Programmer', 'Network Admin', 'System Support') THEN 'IT' 
    ELSE department 
END 
FROM yourTable 
1

這是您應該在客戶端代碼中執行的操作,而不是在數據庫級別執行的操作。

然而,用含有映射一個額外的表這將是可能的:

INSERT INTO mappings (department, mapping) VALUES ('Programmer', 'IT'); 
INSERT INTO mappings (department, mapping) VALUES ('Admin', 'IT'); 
INSERT INTO mappings (department, mapping) VALUES ('Support', 'IT'); 

SELECT t.*, COALESCE(m.mapping, t.department) FROM table t 
LEFT JOIN mappings m ON (m.department = t.department) 
+0

或具有一個額外的列。 – Mat 2011-04-17 13:23:11

+0

我理解你的觀點,但是我在iReport中這樣做,我無權修改數據庫以適應我的需要。感嘆〜無論如何,謝謝你的回答。 ;) – huahsin68 2011-04-18 05:09:09