5
我知道我可以發出找出與該列的表我要尋找一個聲明:Oracle SQL如何找出哪個表具有以下兩列?
SELECT DISTINCT(table_name)
FROM all_tab_cols
WHERE column_name = 'EMP_ID';
不過,我應該怎麼修改,這樣我可能會發現,已經都表示EMP_ID
表和EMP_NAME
?
我知道我可以發出找出與該列的表我要尋找一個聲明:Oracle SQL如何找出哪個表具有以下兩列?
SELECT DISTINCT(table_name)
FROM all_tab_cols
WHERE column_name = 'EMP_ID';
不過,我應該怎麼修改,這樣我可能會發現,已經都表示EMP_ID
表和EMP_NAME
?
使用:
SELECT table_name
FROM all_tab_cols
WHERE column_name IN ('EMP_ID', 'EMP_NAME')
GROUP BY table_name
HAVING COUNT(DISTINCT column_name) = 2
計數比較必須等於的IN
節中定義的參數的數目。
...但是這是確定的情況下表中的一個更安全的手段他們是重複的:
SELECT table_name
FROM all_tab_cols
WHERE column_name IN ('EMP_ID', 'EMP_NAME')
GROUP BY table_name, owner
HAVING COUNT(column_name) = 2
謝謝小馬。 –
在這個你必須採取'所有者'的條件也... 否則它會給錯的答案... –
在所有的大項目,你必須在不同的架構工作,這就是爲什麼我要求你把業主的條件在這裏以及....好吧說,在一個架構test_1表有一個列名EMP_ID但沒有EMP_NAME,在其他架構,它只有EMP_NAME ....只是想想這也..這個查詢也會給test_1也.. :) –