Case When 用法 以及常見錯誤


case when 有兩種用法結構

  • 第一種 標准的(建議用第一種 標准並且不容易出錯 可判斷任意條件)

    			case when 判斷的字段名條件1  then 結果1    
    			 when 判斷的字段名 條件2  then 結果2
                     else(可寫可不寫) 結果3
                     end   '命名的名字'
    

    例如

    select *,  -- 查詢所有數據
        case when sal>1000 and sal <1500 then '底薪'  -- 判斷條件
        when  sal>1500 and sal<2000  then '高薪'		-- 判斷條件
    end ‘end’                                        -- else可省略 如果不需要 
    from emp;
    

  • 第二種的 case when (有限制) 一般判斷條件用於等或者不等的 不能用於大於或者小於
   case  判斷字段名   when  '符合條件1'  then '符合條件2'   -- when中默認用case后面的字段名進行匹配
   					when  '符合條件2'  then '符合條件3'
   					else(可寫可不寫) 結果3
                 	end   '命名的名字'

例子

select *,
       case deptno when 10  then '結果1'
            when  20   then '結果2'
           when 30 then '結果3'
           end ‘命名’
from emp;

結果

后面就是我用case when語句的 碰到的錯誤

用第二種方法時候 when后面不能再加判斷的字段名 否則會全部失效 比如

select *,case deptno   -- case后面已經有需要判斷的字段名
			when deptno=10  then '結果1'   -- when 后面又加了判斷名  會導致所有判斷條件全部失效
            when deptno= 20   then '結果2'
           when deptno=30 then '結果3'
           end ‘命名’
from emp;

結果

所以寫的時候要記得用哪個方式 不要重復加了需要判斷的字段名


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM