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.   

    EMPLOYEE_CODE  是varchar2型的?你确定不是int的?
      

  2.   

    试下这个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%'
      

  3.   

    SQL code
    SELECT    b.EMPLOYEE_CODE  as me
    FROM  VB_TEST_EMPLOYEE  b
    where me='aaa' 这样也不可以吧! where 条件里能只用别名吗?没有试过.
      

  4.   

    SELECT * from  (  SELECT    
            CASE WHEN b.EMPLOYEE_CODE ='12'  THEN
                    b.EMPLOYEE_NAME 
            ELSE
                    b.EMPLOYEE_NAME
            END  AS NAME 
    FROM  VB_TEST_EMPLOYEE  b)a
    where    a.NAME LIKE 'd%'
    给分
      

  5.   

    我在  Oracle  中執行了一下樓主的sql 可以執行啊,
    不知道哪裡出錯了.
    請樓主把 表結構貼出來.