Показать разницу данных в столбцах двух таблиц в одной базе данных - PullRequest
0 голосов
/ 11 мая 2018

Я работаю с SQL Server 2008 и занимаюсь анализом данных с использованием разных запросов.В моей базе данных 70 столбцов в двух разных таблицах в одной схеме.Данные в этих таблицах были введены дважды.Сейчас я сравниваю данные каждого столбца и показываю записи, которые имеют различия.Ниже мой запрос.

SELECT 
    [NEEF_Entry].[dbo].[tbl_TOF].Student_Class4_15,
    [NEEF_Entry].[dbo].[tbl_TOF_old].Student_Class4_15
FROM
    [NEEF_Entry].[dbo].[tbl_TOF]
INNER JOIN
    [NEEF_Entry].[dbo].[tbl_TOF_old] ON [NEEF_Entry].[dbo].[tbl_TOF].FormID = [NEEF_Entry].[dbo].[tbl_TOF_old].FormID
WHERE
    [NEEF_Entry].[dbo].[tbl_TOF].Student_Class4_15 <> [NEEF_Entry].[dbo].[tbl_TOF_old].Student_Class4_15

Объединение основано на идентификаторе формы, который одинаков в обеих таблицах.Теперь столбец здесь Student_Class4_15 в таблице tbl_TOF и в таблице tbl_TOF_old, которая здесь сравнивается, и результат здесь

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

Я хочу, чтобы SQL-запрос выбирал все столбцы, сравнивал их и возвращал результаты.

1 Ответ

0 голосов
/ 11 мая 2018

Я бы использовал, кроме как для сравнения двух таблиц. Если запрос не возвращает строк, данные совпадают.

SELECT *
FROM table1
EXCEPT  
SELECT *
FROM table2;

В случае, если в таблице 2 есть дополнительные строки:

SELECT *
FROM table2
EXCEPT  
SELECT *
FROM table1;
...