使用子查询代替表名 [英] using subquery instead of the tablename
本文介绍了使用子查询代替表名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Table Meta:
-------------------------------------
type tab_name
new tab_news
sports tab_sps
Table tab_news
------
id
Table tab_sps
-------------------
id
xx
现在我要使用
SELECT id
FROM (SELECT tab_name
FROM Meta
WHERE type = 'news');
但这不起作用,有什么主意吗?
But it does not work, any ideas?
推荐答案
SQL不支持表名使用变量/etc-支持您要求的唯一方法是使用动态SQL:
SQL does not support a variable/etc for the table name -- the only means of supporting what you ask is by using dynamic SQL:
FOR i IN (SELECT tab_name
FROM META m
WHERE m.type = ?) LOOP
EXECUTE IMMEDIATE 'SELECT * FROM '|| i.tab_name ||'';
END LOOP;
这篇关于使用子查询代替表名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文