2012年9月3日 星期一

CASE 函數


/* case 函數*/

--對欄位作CASE的判斷。
SELECT s.[std_name] + CASE p.[addr] when '新竹市' then '市民' else '訪客' end
      ,p.[addr]
  from [personal] p,[score] s
 where p.[std_num]=s.[std_num]


--對欄位下條件作CASE的判斷。
SELECT s.[std_name] + CASE when p.[addr] like '新竹%' then '在地人' else '觀光客' end
      ,p.[addr]
  from [personal] p,[score] s
 where p.[std_num]=s.[std_num]


SELECT [std_num]
      ,[std_name]
      ,[CO]
      ,[DB]
      ,[SP]
      ,[TD]
      ,[judgment]
      ,總成績=co+db+sp+td
      ,本次考試表現=case 
                    when co+db+sp+td>=360 then '非常好!'
                    when co+db+sp+td>=320 then '再加油!'
                    else '太混了!' end
  FROM [CSIE98].[dbo].[score]



--對排序作CASE的判斷。
SELECT [員工編號]
      ,[姓名]
      ,[職稱]
      ,[性別]
      ,[主管]
      ,[出生日期]
      ,[任用日期]
      ,[區域號碼]
      ,[地址]
      ,[分機號碼]
  FROM [CH11範例資料庫].[dbo].[員工]
 ORDER BY CASE [性別] when '' then [出生日期] else [任用日期] end




話說,
CASE 函數可以使用在排序條件上,這點有令我意外。
因為我還真不知道可以這樣子用呢!




沒有留言:

張貼留言