2012-08-06 247 views
2

我有一個SQL查詢,這是生成表SQL查詢case語句

SELECT DISTINCT 
concat(table.column, '.test.com) "User Login", 
concat(concat(table.columnname, ' '), lastname) "Full Name", 
'N' "Admin (Y/N)", 
table.profile "Profile", 
'Self' "admin", 
'Self' "user", 
FROM table.users 

我想一個case語句添加到上述查詢。

If (table.profile == admin){ 
admin = self; 
user = null; 
} 
else{ 
admin = null; 
user = self; 
} 

任何人都可以幫忙嗎?

+1

**什麼**數據庫系統,以及哪個版本?? * SQL *只是*結構化查詢語言* - 許多數據庫系統使用的語言,但不是數據庫產品......它真的有助於瞭解您正在使用的數據庫系統**。 – 2012-08-06 19:41:18

+0

哪個數據庫是? – 2012-08-06 19:41:23

+0

我正在使用Oracle 11.2 – marcwho 2012-08-06 19:42:14

回答

4
select ... 
,  case when profile = 'admin' then 'self' end as admin 
,  case when coalesce(profile,'') <> 'admin' then 'self' end as user 
from table.users 

case的默認值爲空,它符合您的要求。

+0

在查詢結束時,case表達式在哪裏? – marcwho 2012-08-06 19:48:28

+1

您可以使用'case'在那裏您通常會選擇一個列,編輯回答 – Andomar 2012-08-06 19:49:39

+0

謝謝!那樣做了。快速提問回答中'<>'是什麼? – marcwho 2012-08-07 00:23:36