2016-05-29 65 views
0

我有一张表格,看起来像这样?如何检查表格的一列中的条目是否在另一列中至少出现一次?

CREATE TABLE [dbo].[WordForm] (
    [Word1] VARCHAR (20) NOT NULL, 
    [Word2] VARCHAR (20) NOT NULL 
} 

这是数据的样子吗?

Word1  Word2 
-----  ----- 
abandon  abandon 
abandon  abandonment 
adapt  adapt 
adapt  adaptable 
adapt  adaptation 
adapt  adapter 
adversely adverse 
adversely adversely 
adversely adversity 

如何检查每一个出现在列字1字存在于字2至少一次,并且如果有出现WORD1中而不是字2我需要知道的话是什么话。

回答

2

有关大型数据集更高性能的解决方案试试这个:

SELECT w.Word1 as [Word 1 Not in Word 2] 
FROM WordForm w 
EXCEPT 
SELECT w.Word2 
FROM WordForm w 
; 

SELECT w.Word2 as [Word 2 Not in Word 1] 
FROM WordForm w 
EXCEPT 
SELECT w.Word1 
FROM WordForm w 
; 
+0

@Alan ,你能解释一下上面两个查询中哪一个回答了这个“每一个字”出现在Word1列中Word2中?我错过了什么? –

1
SELECT w.Word1 as [Word 1 Not in Word 2] 
FROM WordForm w 
WHERE NOT EXISTS 
     (
      SELECT * 
      FROM WordForm x 
      WHERE x.Word2 = w.Word1 
     ) 

SELECT w.Word2 as [Word 2 Not in Word 1] 
FROM WordForm w 
WHERE NOT EXISTS 
     (
      SELECT * 
      FROM WordForm x 
      WHERE x.Word1 = w.Word2 
     ) 
相关问题