Oracle SQL, как узнать, какая таблица имеет следующие два столбца? - PullRequest
5 голосов
/ 12 июля 2011

Я знаю заявление, которое могу выдать, чтобы найти таблицу с нужным мне столбцом:

SELECT DISTINCT(table_name)
  FROM all_tab_cols 
 WHERE column_name = 'EMP_ID';

Однако как мне изменить это, чтобы я мог найти таблицу соба говорят EMP_ID и EMP_NAME?

1 Ответ

11 голосов
/ 12 июля 2011

Использование:

  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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...