2016-05-26 7 views
1

サブクエリで列名を取得します:私はいくつかのテーブルから列名を取得するには、この操作を行うことができることを知って

SELECT 
COLUMN_NAME 
FROM ALL_TAB_COLS 
WHERE TABLE_NAME = 'MY_TABLE' 

しかし、私はこのような何か(擬似コードのビット)を行いたい場合は:

WITH 
    SUB1 AS (SELECT COLUMN_1, COLUMN_2 FROM SOME_TABLE1) 
    SUB2 AS (SELECT COLUMN_1, COLUMN_2 FROM SOME_TABLE2) 
    RESULTS AS 
    (SELECT COLUMN_NAME 
    FROM SUB1 
    INNER JOIN SUB2 ON SUB1.COLUMN_NAME = SUB2.COLUMN_NAME) 

SELECT * FROM RESULTS 

このようなことはありますか?

+0

テーブルを同じ列名と比較する簡単な方法が必要だとしましょう。 – Petar

+0

これは通常のクエリで行うことができます。名前のエイリアスのみ。 table1.col_aをA、table2.col_aをA_1 – PyNoob

+0

として申し訳ありませんが、どういう意味なのか分かりました。私は自分自身を正しく表現していませんでした。私は、テーブルの列名を、テーブルを持っていない列名の外部リストと比較する必要があります。テーブルを持つことはできません。 – Petar

答えて

1

のためにない使用をどこ示唆information_schema.COLUMNSを使用して列名を取得し、列名を表間で比較します。

Select distinct column_name, table_name 
from information_schema.COLUMNS 
where table_name in('table1','table2') 
and column_name = 'column_name' 
1

あなたがテーブルのカラム名

と比較する列名の外部リストを持っている場合は、私は句で

SELECT 
COLUMN_NAME 
FROM ALL_TAB_COLS 
WHERE TABLE_NAME = 'MY_TABLE' 
AND COLUMN_NAME in ('colname1,' 'colname2' ....) 

またはあなたが照会することができます逆

関連する問題