1. 程式人生 > >sql server中類似oracle中decode功能的函式

sql server中類似oracle中decode功能的函式

SQL Server 2008中的寫法:

select t.PROJECTNAME,
	t.BUILDCONTENTSCALE, 
	CASE t.PROJECTLEVEL
      WHEN '0' THEN '國家重點'
      WHEN '1' THEN '省重點'
      WHEN '2' THEN '市重點'
      WHEN '3' THEN '區/縣重點'
      END AS PROJECTLEVEL,
	t.TOTALINVESTMENT,
	t.PROGRESSCONTENT,
	t.BUILDCOMPANY, 
	t.CONTACTWAY,
	t.DUTYDEPT,
	t.REMARK 
from t_iipms_applayprojects t 
	where t.projecttype = '1'  
	and t.isvoided = '0';

Oracle 10g中的寫法:
select t.PROJECTNAME,
       t.BUILDCONTENTSCALE,
       decode(t.PROJECTLEVEL,
              '0',
              '國家重點',
              '1',
              '省重點',
              '2',
              '市重點',
              '3',
              '區/縣重點') as PROJECTLEVEL,
       t.TOTALINVESTMENT,
       t.PROGRESSCONTENT,
       t.BUILDCOMPANY,
       t.CONTACTWAY,
       t.DUTYDEPT,
       t.REMARK
  from t_iipms_applayprojects t
 where t.projecttype = '1'
   and t.isvoided = '0';
細節對比看效果很明顯:SQL Server 2008中
CASE t.PROJECTLEVEL
      WHEN '0' THEN '國家重點'
      WHEN '1' THEN '省重點'
      WHEN '2' THEN '市重點'
      WHEN '3' THEN '區/縣重點'
      END AS PROJECTLEVEL
Oracle 10g中
decode(t.PROJECTLEVEL,
              '0',
              '國家重點',
              '1',
              '省重點',
              '2',
              '市重點',
              '3',
              '區/縣重點') as PROJECTLEVEL