1        SELECT
2     f1,
3        case
4        when TD_DEP_TYP='24' then '20182002'
5        when (TD_DEP_TYP='42' and TD_DEP_PRD='00360' ) then '20182501'6        from tb1 where ...
如上面,一般情况按照第4行来写是没问题的,但是我现在需要在TD_DEP_TYP=‘42’的时候再增加一个判断条件,这个时候就语法错误了,我知道这样写不对,只是为了表达我的目的,请教高人如何解决在case里多条件查询的问题,在线等待

解决方案 »

  1.   

    1        SELECT 
    2    f1, 
    3        case 
    4        when TD_DEP_TYP='24' then '20182002' 
    5        when (TD_DEP_TYP='42' and TD_DEP_PRD='00360' ) then '20182501'  end --加个--end6        from tb1 where ... 
      

  2.   

    case 
        when 
        then
        else
    end
      

  3.   

    1        SELECT 
    2    f1, 
    3        case 
    4        when TD_DEP_TYP='24' then 
                  case when  TD_DEP_PRD='00360'  then '20182501' 
                       else  '20182002' end
             end
     6        from tb1 where ... 
      

  4.   

    1        SELECT 
    2    f1, 
    3        case 
    4        when TD_DEP_TYP='24' then '20182002' 
    5        when (TD_DEP_TYP='42' and TD_DEP_PRD='00360' ) then '20182501'  else ' ' end6        from tb1 where ... 完整是这样的,现在是(TD_DEP_TYP='42' and TD_DEP_PRD='00360' ) 这一个条件这样写不对
      

  5.   

       SELECT 
    2    f1,--这里的逗号 
    3        case 
    4        when TD_DEP_TYP='24' then '20182002' 
    5        when (TD_DEP_TYP='42' and TD_DEP_PRD='00360' ) then '20182501'  else ' ' end 6        from tb1 where ...
      

  6.   

    SELECT 
        F1, 
        CASE
           WHEN TD_DEP_TYP='24'
               THEN '20182002' 
           WHEN (TD_DEP_TYP='42' AND TD_DEP_PRD='00360' ) 
               THEN '20182501'
           ELSE ' '
         END 
    FROM TB1