如何将一个返回值作为一个字段名来使用?

yearlist 2006-01-11 02:59:19
现有
表A,有字段num_1,
表B,在字段name中保存有num_1字段名,

现在我想实现如下功能:
select (select name from B where name='num_1')
from A

想得到的结果:A表字段num_1所对应的值。


我执行了以后不行,因为子嵌套返回的是一个字串,SQL不能执行,报错,不知道哪位达人有方法实现这样的功能??
...全文
161 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yearlist 2006-01-12
  • 打赏
  • 举报
回复
已经好了,谢谢无风
yearlist 2006-01-12
  • 打赏
  • 举报
回复
如,我想执行
execute immediate 'insert into t_test (select aa,bb,sum('||aa||') from b where ...)';
为什么执行的时候会报错呢?
wfeng7907 2006-01-12
  • 打赏
  • 举报
回复
最方便的方式是写一个存储过程,建立一个临时表,来储存!
yearlist 2006-01-12
  • 打赏
  • 举报
回复
我要的结果是个结果集,into只能是一个数据?能into一系列数据吗?
wfeng7907 2006-01-12
  • 打赏
  • 举报
回复
使用动态SQL吧,写一个函数就可以了.
主要写法可以参照!
select name from B where name='num_1' into aa;
execute immediate 'select' ||aa|| 'from A' into bb;
yearlist 2006-01-12
  • 打赏
  • 举报
回复
自己顶一下。
yearlist 2006-01-11
  • 打赏
  • 举报
回复
竟然没人看。。。。??

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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