如下面的sql
select *
from (select a__t.*, rownum i__d
from (SELECT cast(('HVPS') as varchar(4)) AS SYSCODE,
A.ID,
B.VDATE,
cast(('hvps.141.001.01') as varchar(35)) AS Msg_Type,
A.BIZ_TYPE_CODE,
A.BIZ_CTGY_CODE,
A.DRCT,
A.AMOUNT,
B.STATUS,
A.STATUS
FROM CP2_HVPS141 A
INNER JOIN V_TXN B
ON A.ID = B.CORE_ID
WHERE 0 = 0
AND B.BRNO = '121'
ORDER BY A.ID) a__t) b__t
where i__d < 11
and i__d >= 1
小弟在子查询中将A,B两个表关联查询的结果放在a__t中,但是存在A.STATUS和B.STATUS这样的重名字段,在ORACLE中会认为存在不明确的列
现在我有很多个这样的类似的sql,我想找出其中存在这种列名重复的sql,不知道各位大侠有没有什么好的建议,多谢指教!
select *
from (select a__t.*, rownum i__d
from (SELECT cast(('HVPS') as varchar(4)) AS SYSCODE,
A.ID,
B.VDATE,
cast(('hvps.141.001.01') as varchar(35)) AS Msg_Type,
A.BIZ_TYPE_CODE,
A.BIZ_CTGY_CODE,
A.DRCT,
A.AMOUNT,
B.STATUS,
A.STATUS
FROM CP2_HVPS141 A
INNER JOIN V_TXN B
ON A.ID = B.CORE_ID
WHERE 0 = 0
AND B.BRNO = '121'
ORDER BY A.ID) a__t) b__t
where i__d < 11
and i__d >= 1
小弟在子查询中将A,B两个表关联查询的结果放在a__t中,但是存在A.STATUS和B.STATUS这样的重名字段,在ORACLE中会认为存在不明确的列
现在我有很多个这样的类似的sql,我想找出其中存在这种列名重复的sql,不知道各位大侠有没有什么好的建议,多谢指教!
SELECT TABLE_NAME, COLUMN_NAME
FROM (SELECT T.TABLE_NAME,
T.COLUMN_NAME,
COUNT(1) OVER(PARTITION BY T.COLUMN_NAME) RN
FROM USER_TAB_COLUMNS T)
WHERE RN > 1
;
像table1 status
table2 status
……
但是我目的不是这个,是对一个叫cp2_inquire的表中的sql进行查找, 该表中有很多类似我之前提到SQL,而这些重复名字段是放在多表查询时将结果集作为临时表发生的。
我想通过类似这样的SQL来找到列名数多于1的,
SELECT COLUMN_NAME
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME = 'CP2_table1'
group by COLUMN_NAME having count(*) > 1
但是因为是临时表,TABLE_NAME这里我不知道怎么能处理,求指教。