oracle 中SELECT    b.EMPLOYEE_CODE  as me
FROM  VB_TEST_EMPLOYEE  b
order  by  me 
这样是可行的,为什么,下面不行啊,怎么解决
SELECT    
        CASE WHEN b.EMPLOYEE_CODE ='12'  THEN
                b.EMPLOYEE_NAME 
        ELSE
                b.EMPLOYEE_NAME
        END  AS NAME 
FROM  VB_TEST_EMPLOYEE  b
where    NAME LIKE 'd%'

解决方案 »

  1.   

    CASE WHEN b.EMPLOYEE_CODE ='12'  THEN
                    b.EMPLOYEE_NAME 
            ELSE
                    b.EMPLOYEE_NAME
            END  AS NAME 
    这怎么可能不出错???then else的结果都是 b.EMPLOYEE_NAME
    ELSE 换一个
      

  2.   

    字段、表达式的别名在where子句和group by子句都是不能使用的,而在order by中不仅可以使用别名,甚至可以直接使用栏位的下标来进行排序,如:order by 1 desc,2 asc