oracle 9ioracle里有没有这样的处理方式select *  from (条件表达式;0,A表;1,B表)达到这样的效果:若条件=0则:select * from A表;
若条件=1则:select * from B表;

解决方案 »

  1.   


    declare sqlstr varchar1(200);
    若条件=0则:sqlstr:='select * from A表;';
    若条件=1则:sqlstr:='select * from B表;';
    execute immediate sqlstr ;
      

  2.   


    --没有
    --1、用动态sql
    --2
    if 条件1 then
      select * from A;
    else
      select * from B;
    end if;
      

  3.   


    想用一句话 这样的格式 select *  from (条件表达式;0,A表;1,B表)
    来实现,不想写一段逻辑判断
      

  4.   

    类似于在 select后面可以用 DECODE一样
    在from 的后面有没有这样的函数可以用
      

  5.   

    --oracle 不支持from 后面表名根据条件变化
    --想用的话,只能在我写的哪两种方式中选择一种
      

  6.   

    合意否?
    WITH table1 AS
    (
         SELECT 'T1-A' AS st FROM dual
         union all
         SELECT 'T1-B' AS st FROM dual
    ),
    table2 AS
    (
         SELECT 'T2-A' AS st  FROM dual
         union all
         SELECT 'T2-B' AS st  FROM dual  
    )
    SELECT * FROM (
    SELECT '0' AS FLG,T1.* FROM TABLE1 T1
    UNION ALL
    SELECT '1' AS FLG,T2.* FROM TABLE2 T2) WHERE FLG = '1'/*<-条件式*/
      

  7.   

    不必拘泥于一句sql。这样会害死人的