數據庫有一張表BUG(缺陷記錄表) 里面有字段severity(嚴重程度):
severity的值實際為1,2,3,4,但希望在查詢結果中將severity的1,2,3,4值顯示為其他的值,但severity的實際值不會改變;
例如:數據表的結構和數據如下:
bug_id name severity
1 張三 1
2 李四 2
3 王五 3
4 馬六 4
5 周王 5
要在查詢結果中將severity實際值顯示為中文,如下:
severity實際值 severity 顯示結果
1 緊急
2 高
3 中
4 低
查詢語句:
select bug_id,name,
(case severity
when 1 then '緊急'
when 2 then '高'
when 3 then '中'
when 4 then '低'
else '其他'
end)
from BUG;
查詢結果:
bug_id name severity
1 張三 緊急
2 李四 高
3 王五 中
4 馬六 低
5 周王 其他
語句解釋:
select
(case 字段名
when 實際值1 then 替換值1
when 實際值2 then 替換值2
…………
when 實際值n then 替換值n
else 替換值x
end)
from 表名;
1、case 字段名:要替換顯示值的字段;
2、when 實際值1 then 替換值1:當查詢結果的字段值為實際值1時,將結果顯示為替換值1;
3、else 替換值x:當查詢結果字段值的實際值不滿足前面所有條件時,將期顯示為替換值x;
4、end:替換語句結束;
5、要將多個字段的顯示值都替換成其他值時,只需增加多個(case 字段名 when 實際值 then 替換值 end)語句,中間使用逗號分隔;
原文網址:http://sujing1981.blog.163.com/blog/static/270251452013226105127924/