日期:2014-05-17  浏览次数:21003 次

一个关于CASE语句的问题,在线等!!!!1
create   or   replace   view   v_noah_INPUT_DATA   as

SELECT   S.ACCHFM,   (CASE     WHEN   T.ICUSTOM1TOPMEMBER   IS   NOT   NULL  
                                          THEN   (SELECT   M.CDES   FROM   TBL_HFMBAS_INTER_C1_ITEM   M
                                          WHERE   M.IITEMID=   T.ICUSTOM1TOPMEMBER)
                                  END)
  FROM   V_UC_ZJ_MASTER   S,TBL_HFMBAS_INTER_ACCOUNT_ITEM   T  
  WHERE   S.ACCHFM   =   T.CLABEL

总是提示:ORA-00998   必须使用列别名命名此表达式
为什么?


------解决方案--------------------
不好意思,你的case when 以后需要给它制定一个别名
用下面的就可以了。
create or replace view v_noah_INPUT_DATA as

SELECT S.ACCHFM, (CASE WHEN T.ICUSTOM1TOPMEMBER IS NOT NULL
THEN (SELECT M.CDES FROM TBL_HFMBAS_INTER_C1_ITEM M
WHERE M.IITEMID= T.ICUSTOM1TOPMEMBER)
END) as youcolname
FROM V_UC_ZJ_MASTER S,TBL_HFMBAS_INTER_ACCOUNT_ITEM T
WHERE S.ACCHFM = T.CLABEL