为什么我这个报错呢?
 select      case when ... then
             ...
         else case when ....   then
              ....
        else
           null
        end  from ...

解决方案 »

  1.   

    select case
       when ... then ...
       when ... then ...
       ...
       else
          null
       end
    from
      

  2.   

    报什么错
    else case when ....  then 
    这个里面的case结束时是否加了end
      

  3.   


    else 后面不用在加case了.语法是:
    select case
          when ... then ...
          ...
          else
              null
          end
    from t
      

  4.   

    SELECT col1, col2, 
           CASE 
              WHEN col3 > 1 AND col3 <2 
                 THEN '1' 
              WHEN col3 > 2 AND col3 <3 
                 THEN '2' 
              WHEN col3 > 3 AND col3 <4 
                 THEN '3' 
              ELSE '4' 
           END mylevel 
    FROM table1 注意点: 
    1、以CASE开头,以END结尾 
    2、分支中WHEN 后跟条件,THEN为显示结果 
    3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加 
    4、END 后跟别名
      

  5.   


    --EX
    SELECT AVG(CASE
                 WHEN e.salary > 2000 THEN
                  e.salary
                 WHEN 3000 > e.salary THEN
                  e.salary + 100
                 ELSE
                  2000
               END) "Average Salary"
      from employees e;
      

  6.   

    SELECT CASE 1
             WHEN 1 THEN
              2
             WHEN 2 THEN
              3
           END CASE
      FROM DUAL;
    看看这个。