首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

oracle9i这样的select如何写

2012-12-22 
oracle9i这样的select怎么写oracle 9ioracle里有没有这样的处理方式select *from (条件表达式;0,A表;1,B表

oracle9i这样的select怎么写
oracle 9i

oracle里有没有这样的处理方式

select *  from (条件表达式;0,A表;1,B表)

达到这样的效果:

若条件=0则:select * from A表;
若条件=1则:select * from B表;
[最优解释]


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

[其他解释]
合意否?
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'/*<-条件式*/

[其他解释]

declare sqlstr varchar1(200);
若条件=0则:sqlstr:='select * from A表;';
若条件=1则:sqlstr:='select * from B表;';
execute immediate sqlstr ;
[其他解释]
引用:
SQL code123456789--没有--1、用动态sql--2if 条件1 then  select * from A;else  select * from B;end if;


想用一句话 这样的格式 select *  from (条件表达式;0,A表;1,B表)
来实现,不想写一段逻辑判断
[其他解释]
类似于在 select后面可以用 DECODE一样
在from 的后面有没有这样的函数可以用
[其他解释]
引用:
类似于在 select后面可以用 DECODE一样
在from 的后面有没有这样的函数可以用



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

[其他解释]
不必拘泥于一句sql。这样会害死人的
[其他解释]
引用:
合意否?
SQL code12345678910111213141516WITH 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     u……


结果满足要求,但是效率、不可说不可说...
[其他解释]
该回复于2012-12-08 21:33:43被管理员删除

热点排行