1. 程式人生 > >sql欄位值的替換

sql欄位值的替換

資料庫有一張表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)語句,中間使用逗號分隔;