永发信息网

SQL求助: 在写SQL语句时,我想要调用其他表查询的结果拼接上一个字符串作为表名,但是执行语句时,

答案:2  悬赏:0  手机版
解决时间 2021-12-30 15:44
报错说我查的字段不在表中(标识符无效)。
select LYO_3_DB5_DBD84 from (select table_name from USER_TABLES where TABLE_NAME = (SELECt * FROM(SELECt concat(demo,'HISTORY') FROM HISTORY order by recordtime)where rownum=1));

表名为一个查询的结果:A1_LJ_HISDATA_LYO_3_HISTORY ,这个也是在数据库中存在的表,我搜索的字段也是该表存在的。
想知道为什么表名为查询结果后就不能正常执行查询操作了呢?应该怎么处理才能实现拼接后的字符串作为表名正常查询。

PS:因为表名不确定,所以想通过查询其他表的某一字段来拼接字符串凑成表名,然后查询想要的字段结果。
最佳答案
declare
v_tbl_nm varchar2(30);
v_sql varchar2(4000);
v_result varchar2(4000);
begin
select table_name into v_tbl_nm from USER_TABLES where TABLE_NAME = (SELECt * FROM(SELECt concat(demo,'HISTORY') FROM HISTORY order by recordtime)where rownum=1);
v_sql :='select LYO_3_DB5_DBD84 from ' || v_tbl_nm ;
execute immediate v_sql into v_result;
dbms_output.put_line(v_result);
end;
全部回答
sql server: --1. select a.xsgg,count(a.xsgg) num from ( select substring(xsgg,1,charindex('*',xsgg,0)-1) as xsgg from 表名) a group by a.xsgg order by num desc; --2. select b.xsgg,count(b.xsgg) num from ( select left(xsgg,charindex('*',xsgg))+left(substring(xsgg,charindex('*',xsgg)+1,len(xsgg)),charindex('*',substring(xsgg,charindex('*',xsgg)+1,len(xsgg)))-1) xsgg from 表名 )b group by b.xsgg order by num desc;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
育新中学初三(1)班正面在开展“走进小说”综
绝对近义词
窗字怎么组词
盐津县公安局盐津县烟草专卖局查处打击两烟违
农村河里即将消失的野味,你吃过几种
Photoshop做银手镯的效果
雅诗兰黛是哪里的品牌产地在哪
盐津县烟草专卖局专卖稽查大队办公地址在什么
单选题在分类单位中,最基本的分类单位是A.种
好用的砍价工具,你们了解吗?是培训机构招生
上海到南通多少时间
在交易猫买了个诛仙手游帐号,在哪儿改绑定
用什么软件获取root后还能解除
成语玩命猜名誉
三好学生与红花少年有什么区别?
推荐资讯
谁帮我看看主板里的这些数字代表什么啊
单选题豌豆的高茎基因(D)和矮茎基因(d)的根本
班组长对新员工考核报告怎么写
新车合格证多久过期作废
我手机号不要了,里面多余的话费可以做什么
我想要苏寞的《沉香如屑》、《当时误惜朝》、
移动怎么发短信开流量
好多医院都用雅培的血糖仪,想知道苏州哪里有
起亚k2汽车车一跑暖气就不热,车停下水温就上
点绛唇①阅读答案
根据下表情况,写一篇自我介绍。(省略部分请
生死狙击怎么说话
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?