以下陈述是否有浓缩形式?
SELECT Name, Case StatusID WHEN 1 THEN 'Alive' WHEN 2 THEN 'Alive' WHEN 3 THEN 'Alive' WHEN 4 THEN 'Dying' ELSE 'Dead' END FROM People
例如
CASE StatusID WHEN 1,2,3 THEN 'Alive'
或
CASE StatusID WHEN 1 OR 2 OR 3 THEN 'Alive'
答案 0 :(得分:5)
取决于您使用的数据库,以下将执行操作
SELECT
Name,
Case WHEN StatusID IN ( 1, 2, 3 ) THEN 'Alive' WHEN StatusID = 4 THEN 'Dying' ELSE 'Dead' END
FROM People
答案 1 :(得分:4)
在Oracle中,假设statuid永远不是< = 0:
SELECT Name, CASE WHEN statusid < 4 THEN 'Alive'
WHEN statusid = 4 THEN 'Dying'
ELSE 'Dead' END AS some_alias
FROM people
您也可以使用DECODE。