sql server中类似oracle中decode功能的函数


sqlserver 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中的写法

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

原文地址:

https://blog.csdn.net/hu_shengyang/article/details/10533865

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM