问题描述
嗨
是否可以加入ALL_TABLES和普通表?
我喜欢制作动态SQL并选择从列表中选择后显示的列。
像这样的东西:
select
*
from table1 a
where a.columns in (SELECT DISTINCT
A.COLUMN_NAME
FROM SYS.ALL_TAB_COLUMNS A
WHERE A.OWNER = 'ME'
AND A.TABLE_NAME = 'Table1'
AND A.COLUMN_NAME LIKE '%CONF%')
是否可以加入ALL_TABLES和普通表?
我喜欢制作动态SQL并选择从列表中选择后显示的列。
像这样的东西:
select
*
from table1 a
where a.columns in (SELECT DISTINCT
A.COLUMN_NAME
FROM SYS.ALL_TAB_COLUMNS A
WHERE A.OWNER = 'ME'
AND A.TABLE_NAME = 'Table1'
AND A.COLUMN_NAME LIKE '%CONF%')
专家解答
当然,你可以加入all_tables到任何其他表/视图:
虽然我怀疑这不是你想做的。。。
在您的查询中:
您正在获取我的列名列表。表1如 '% CONF %'。然后返回table1中存储这些值在table1。columns中的行。不是带有这些的列names。
If you want to join based on the name of the column, you'll need dynamic SQL。
create table t as select * from dba_objects; select at。owner, count(*) from all_tables at join t on t。object_name = at。table_name and t。object_type = 'TABLE' group by at。owner; OWNER COUNT(*) APEX_040200 452 MDSYS 130 CHRIS 78 OUTLN 6 CTXSYS 53 OLAPSYS 2 FLOWS_FILES 1 HR 9 SYSTEM 182 DVSYS 36 SCOTT 4 DBSNMP 20 GSMADMIN_INTERNAL 19 OJVMSYS 6 ORDSYS 5 OE 11 PM 2 SH 19 APPQOSSYS 4 XDB 29 ORDDATA 90 IX 8 SYS 1256 WMSYS 40 LBACSYS 22
虽然我怀疑这不是你想做的。。。
在您的查询中:
select * from table1 a where a。columns in (SELECT DISTINCT A。COLUMN_NAME FROM SYS。ALL_TAB_COLUMNS A WHERE A。OWNER = 'ME' AND A。TABLE_NAME = 'Table1' AND A。COLUMN_NAME LIKE '%CONF%')
您正在获取我的列名列表。表1如 '% CONF %'。然后返回table1中存储这些值在table1。columns中的行。不是带有这些的列names。
If you want to join based on the name of the column, you'll need dynamic SQL。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




