Получить несопоставленные строки из двух таблиц на сервере SQL - PullRequest
0 голосов
/ 19 марта 2020

У меня есть две таблицы table_a и table_b. Структура таблицы выглядит следующим образом:

table_a:

col_name  |  data_type                        
----------+--------------
  name    |   nvarchar
  age     |   nvarchar
  city    |   nvarchar
  dob     |   nvarchar

table_b:

col_name  |  data_type                        
----------+--------------
  name    |   nvarchar
  age     |   int
  city    |   nvarchar
  dob     |   datetime
 country  |   nvarchar

Теперь я хочу все те имена столбцов, которые имеют несоответствующий тип данных, то есть age и dob в выходном результате.

1 Ответ

4 голосов
/ 19 марта 2020

Хммм. , , предполагая, что таблицы находятся в одной базе данных, вы можете использовать information_schema:

select c.column_name
from information_schema.columns c
where c.table_name in ('table_a', 'table_b')
group by c.column_name
having min(data_type) <> max(data_type)

Примечание. Это не возвращает столбцы, которые находятся только в одной таблице. Если вы этого хотели, добавьте or count(*) = 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...