Как сравнить всю строку таблицы со всей строкой другой таблицы - PullRequest
5 голосов
/ 11 августа 2011

Есть ли способ в SQL Server сравнить всю строку одной таблицы с другой таблицей, имеющей те же типы данных.

Пример:

CREATE TABLE [DBO].[PRODUCT]
  (
     [PID]  [INT] NULL,
     [NAME] [NCHAR](10) NULL,
     [PDID] [INT] NULL
  )

select * from product p, product c where p.{entirerow} = c.{entirerow}

есть ли здесь какой-нибудь вариант?

1 Ответ

14 голосов
/ 11 августа 2011

Используйте SQL INTERSECT (все подходящие строки) и EXCEPT (все разные строки), здесь, например, :

SELECT * FROM Table1 INTERSECT SELECT * FROM Table2
SELECT * FROM Table1 EXCEPT SELECT * FROM Table2

Вы можете сравнить подмножества столбцов, заменив * списком столбцов или подмножествами строк, используя предложение WHERE.

Одно предостережение - схемы таблиц должны быть одинаковыми.

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