SQL compare data from two tables

git revert <hash>

вернется данная фиксация. Это кажется, что Вы думаете git revert только влияние новая фиксация.

, Который не решает Вашу проблему, если Вы хотите вернуться, изменение в определенном файле и той фиксации изменило больше, чем тот файл.

76
задан palacsint 11 September 2013 в 13:08
поделиться

1 ответ

Сравнить T1 (PK, A, B) и T2 (PK, A, B).

Первый сравнивают наборы первичного ключа для поиска пропавших без вести значений ключа на любой стороне:

SELECT T1.*, T2.* FROM T1 FULL OUTER JOIN T2 ON T1.PK=T2.PK WHERE T1.PK IS NULL OR T2.PK IS NULL;

Тогда список все несоответствие значения:

SELECT T1.PK, 'A' AS columnName, T1.A AS leftValue, T2.A AS rightValue FROM T1 JOIN T2 ON T1.PK=T2.PK WHERE T1.A != T2.A
UNION ALL
SELECT T1.PK, 'B' AS columnName, T1.B AS leftValue, T2.B AS rightValue FROM T1 JOIN T2 ON T1.PK=T2.PK WHERE T1.B != T2.B

А и B должны иметь тот же тип. Можно использовать ИНФОРМАЦИОННУЮ СХЕМУ для генерации ВЫБОРА.

, Например, для столбцов типа varchar:

SELECT concat('SELECT T1.PK, ''', COLUMN_NAME, ''' AS columnName, T1.', COLUMN_NAME, ' AS leftValue, T2.', COLUMN_NAME, ' AS rightValue FROM T1 JOIN T2 ON T1.PK=T2.PK WHERE T1.',COLUMN_NAME, '!=T2.', COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME='T1' AND DATA_TYPE IN ('nvarchar','varchar');
0
ответ дан 24 November 2019 в 11:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: