d NUMBER;
d:= select id from 表C;
IF(d=0)
BEGIN
 SELECT * from 表A
END
ELSE
BEGIN
 SELECT * from 表B
END
请指点下哪里出了错  谢谢!!!!

解决方案 »

  1.   

    declare
      d   NUMBER; 
    is
    begin
    select   id into d  from   表C where rownum<2; 
    IF(d=0) then 
      SELECT   *   from   表A 
    ELSE 
      SELECT   *   from   表B 
    end if;
    end;不建议这样用,因为select   id  from   表C 不一定是唯一值哦!所以我加rownum<2确保唯一记录而已。
      

  2.   

    oracle中不支持如下的写法
    IF(d=0)   then   
        SELECT       *       from       表A   
    ELSE   
        SELECT       *       from       表B   
    end   if; 
      

  3.   

    我是在FineReport工具中做报表时写的SQL语句,现在要换成ORACLE时出点错误  代码如下:declare d NUMBER;
    is
    begin
    select DepartId into d from MMT_USERS M INNER JOIN CNT_Employee C on  M.EMP_ID = C.ID where M.NAME = '[?name|bht?]';
    if(d=0) then
     SELECT DW.MC QX, DW_1.MC AS XZ, JSZW.ZWMC,count(ZCSJ.id) as rs
     FROM ZCSJ INNER JOIN
          JSZW ON ZCSJ.XRJSZW = JSZW.ID INNER JOIN
          DW ON ZCSJ.QX = DW.ID INNER JOIN
          DW DW_1 ON ZCSJ.XZ = DW_1.ID
    where to_char(ZCSJ.ZSYXQ,'yyyy-MM-dd') >= '[?riqi|2008-8-1?]'
    and to_char(ZCSJ.QDSJ,'yyyy-MM-dd') <= '[?riqi|2008-8-1?]'
    and ZCSJ.QXZCYY is null
    GROUP By DW.MC, DW_1.MC , JSZW.ZWMC
    ELSE
     SELECT DW.MC QX, DW_1.MC AS XZ, JSZW.ZWMC,count(ZCSJ.id) as rs
     FROM ZCSJ INNER JOIN
          JSZW ON ZCSJ.XRJSZW = JSZW.ID INNER JOIN
          DW ON ZCSJ.QX = DW.ID INNER JOIN
          DW DW_1 ON ZCSJ.XZ = DW_1.ID
    where to_char(ZCSJ.ZSYXQ,'yyyy-MM-dd') >= '[?riqi|2008-8-1?]'
    and to_char(ZCSJ.QDSJ,'yyyy-MM-dd') <= '[?riqi|2008-8-1?]'
    and ZCSJ.QXZCYY is null and ((DW_1.ID in(select D.ID
    from MMT_USERS M INNER JOIN CNT_Employee C on M.EMP_ID = C.ID INNER JOIN DW D on C.DepartId = D.ID
    where M.NAME = '[?name|bht?]')) or (DW.ID in(select D.ID
    from MMT_USERS M INNER JOIN CNT_Employee C on M.EMP_ID = C.ID INNER JOIN DW D on C.DepartId = D.ID
    where M.NAME = '[?name|bht?]')))
    GROUP By DW.MC, DW_1.MC , JSZW.ZWMC
    end if;
    end;
      

  4.   

    你中间那两个SQL的select语句没有什么意义,也没有用到,请讲明这两句做什么用途的?Oracle是不允许直接select的,如果需要用到,可以用游标之类解决