这样一句T-SQL 在Oracle中怎么实现呢?(不能用存储过程)if exists (select name from Table1)select * from FiscalYear  where and Recycle = 0elseselect * from FiscalYear  where and Recycle = 1

解决方案 »

  1.   

    SELECT *
      FROM FISCALYEAR
     WHERE RECYCEL = CASE WHEN (SELECT COUNT(1) FROM TABLE1) > 0 THEN 0 ELSE 1 END;
      

  2.   

    十分感谢楼上的答案~~ 不过貌似我问题没说清楚....
    if后面的句子和else后面的句子可能完全不一样..if exists (select name from Table1) select * from FiscalYear  where and Recycle = 0 else select * from Table3
      

  3.   

    是啊,所以很头大在做SQLServer到Oracle的项目转换到这里卡住了。
      

  4.   

    建议楼主先找本oracle基础开发的书熟悉一下。
    Oracle 存储过程或者函数里面不允许直接 select * from table;这种declare
     cnt int;
    begin
      select count(1) into cnt from Table1;
      if cnt>0 then
        -------
      else
       -------- 
      end if;
    end;
      

  5.   

    只能写PL/SQL!如果表间没有关联的问!
      

  6.   

    5楼这方法没错。
    但是我需要在 
    if cnt>0 then
        -------
      else
       -------- 
      end if;
    这中间返回数据表 怎么写? 直接写select语句报错了就。