请教有关DECODE的问题,请各位高手指点

HorizonXR 2004-11-22 10:33:45
1
...全文
224 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
shawnzhao 2004-11-23
  • 打赏
  • 举报
回复
不能这样用select....from decode(flag,1,tabel1,2,table2) where ....
替代的方法:
select * from tabel1 where flag=1
union
select * from table2 where flag=2
HorizonXR 2004-11-23
  • 打赏
  • 举报
回复
那请问有没有方法可以实现这个功能呢?
jametong 2004-11-23
  • 打赏
  • 举报
回复
decode只能用于col, 不能用于table
liuyi8903 2004-11-22
  • 打赏
  • 举报
回复
decode.
如同if--elseif-elseif-这种条件语句.
HorizonXR 2004-11-22
  • 打赏
  • 举报
回复
但这是游标,请问我该怎么写?我是要通过外部传进来的FLAG,从几张极其相似的表中,挑选出一张,游标的select语句只有表名是不同的,如果我不写成一句,大概就要写十几个只有表名不同的游表了.
wupangzi 2004-11-22
  • 打赏
  • 举报
回复
既然这样就方便了,哈哈!
过程里多一步,
tablname
if flag then
tablname := tabel1;
else
tablname := tabel2;
end if;
execute immediate 'select....from '''||tablname||'''where ....';
HorizonXR 2004-11-22
  • 打赏
  • 举报
回复
flag 是游标里传进去的,我现在在写的是存储过程里碰到的问题,游标无法通过编译.
wupangzi 2004-11-22
  • 打赏
  • 举报
回复
select....from decode(flag,1,tabel1,2,table2) where ....
flag是那里来的!如果是程序里,那就程序中就写好,再传进去啊!

wupangzi 2004-11-22
  • 打赏
  • 举报
回复
直接在sql语句里是没发实现的!
过程里就可以了!
HorizonXR 2004-11-22
  • 打赏
  • 举报
回复
比如有两个表table1,table2,和变量flag
我用select....from decode(flag,1,tabel1,2,table2) where ....
是不是说这不可以用的?如果不可以用,那请问我有什么办法可以实现相同的功能?
wupangzi 2004-11-22
  • 打赏
  • 举报
回复
请问DECODE能不能在from 语句中使用?
什么意思?举个例子!
zmgowin 2004-11-22
  • 打赏
  • 举报
回复
from子句中可以,不能对表明用from
wupangzi 2004-11-22
  • 打赏
  • 举报
回复
decode其实是一个IF的判断!
如:decode(值,if1,then1,if2,then2,......,else then)
HorizonXR 2004-11-22
  • 打赏
  • 举报
回复
请问DECODE能不能在from 语句中使用?
red_bat 2004-11-22
  • 打赏
  • 举报
回复
可以啊 为什么不能?
select decode(值,if1,then1,if2,then2,...,else) from table_name;
wupangzi 2004-11-22
  • 打赏
  • 举报
回复
哦,这样的话,好象没办法了!
只能一个个写了!
另开一个话题,高分请高手吧!
HorizonXR 2004-11-22
  • 打赏
  • 举报
回复
究竟能不能用在from 语句中啊?高手快来,帮帮忙啊

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧