匹配两个 Select 语句进行比较

Har*_*nch 4 sql

我有两个带有以下选择语句的 sql 视图:

1.

 select SUBSTRING(UpdatedColumn,3, 9) as [PartialSearch] from [Database_Name].[dbo].[Table]
Run Code Online (Sandbox Code Playgroud)

2.

select SUBSTRING(OldColumn,3, 9) as [PartialSearchOnLiveTable] from [Same_Database_Name].[dbo].[DifferentTable]
Run Code Online (Sandbox Code Playgroud)

这两个视图分别仅返回 1 列。现在我想将第一个视图中的值与第二个视图中的值进行比较,并返回未找到匹配项的 UpdatedColumn 数据。

我已经考虑过使用比较运算符,但似乎无法得到我想要的,因为根据我的逻辑,我必须在 where 子句中指定视图之间的条件检查,而 sql 不允许这样做。另外,UNION/UNION ALL 只会给出所有记录的结果集。这是我不想要的。

最后,我查看了合并两个选择语句进行日期比较,这不是我想要的。

实际上,视图 1 返回:

abcxxxxxx
dokjfhxxx
cmodxxxxx
wuysxxxxx
aaallooxx
Run Code Online (Sandbox Code Playgroud)

查看 2 个退货:

xdsffsafa
xxxxhjsks
ajdhxxxxx
cmodxxxxx
xxxxxx12s
skskshdki
aaallooxx
Run Code Online (Sandbox Code Playgroud)

从输出中我们看到有两个匹配项。那个

aaallooxx
cmodxxxxx
Run Code Online (Sandbox Code Playgroud)

这就是我正在寻找的输出。有什么建议么?

Tom*_*thi 5

intersect您可以在两个查询之间使用, set 运算符。因此它仅打印两个查询中存在的公共行。

select SUBSTRING(OldColumn,3, 9) as [PartialSearchOnLiveTable] from [Same_Database_Name].[dbo].[DifferentTable]
intersect --Set Operation between the two queries
select SUBSTRING(UpdatedColumn,3, 9) as [PartialSearch] from [Database_Name].[dbo].[Table]
Run Code Online (Sandbox Code Playgroud)