在 SQL Server 2000 中,我可以用什么替换 INTERSECT?
What can I replace INTERSECT with in SQL Server 2000?
我使用 SQL Server 2000 并且我需要使用 "intersect" 但是对于这个 SQL 服务器版本我不能 - 那么我应该使用什么来获得两者之间的交集表?
Intersect 获取两张表的匹配结果,比较查询返回的所有列,intersect 的两边必须相同。
我相信这两个都将在 2000 年发挥作用,但我对第一个并不乐观。第一个是首选,因为它不必执行不同的排序。您需要将“*”替换为您想要包含的列,并且您需要将所有这些列分别放在 WHERE/ON 子句中。
SELECT *
FROM s1
WHERE EXISTS
(
SELECT 1
FROM s2
WHERE s1.Col1 = s2.Col1
--All columns included here
AND s1.ColN = s2.ColN
)
SELECT DISTINCT s1.*
FROM s1
INNER JOIN s2
ON s1.Col1 = s2.Col1
--All columns included here
AND s1.ColN = s2.ColN
我使用 SQL Server 2000 并且我需要使用 "intersect" 但是对于这个 SQL 服务器版本我不能 - 那么我应该使用什么来获得两者之间的交集表?
Intersect 获取两张表的匹配结果,比较查询返回的所有列,intersect 的两边必须相同。
我相信这两个都将在 2000 年发挥作用,但我对第一个并不乐观。第一个是首选,因为它不必执行不同的排序。您需要将“*”替换为您想要包含的列,并且您需要将所有这些列分别放在 WHERE/ON 子句中。
SELECT * FROM s1 WHERE EXISTS ( SELECT 1 FROM s2 WHERE s1.Col1 = s2.Col1 --All columns included here AND s1.ColN = s2.ColN )
SELECT DISTINCT s1.* FROM s1 INNER JOIN s2 ON s1.Col1 = s2.Col1 --All columns included here AND s1.ColN = s2.ColN