在 SQL Server 2000 中,我可以用什么替换 INTERSECT?

What can I replace INTERSECT with in SQL Server 2000?

我使用 SQL Server 2000 并且我需要使用 "intersect" 但是对于这个 SQL 服务器版本我不能 - 那么我应该使用什么来获得两者之间的交集表?

Intersect 获取两张表的匹配结果,比较查询返回的所有列,intersect 的两边必须相同。

我相信这两个都将在 2000 年发挥作用,但我对第一个并不乐观。第一个是首选,因为它不必执行不同的排序。您需要将“*”替换为您想要包含的列,并且您需要将所有这些列分别放在 WHERE/ON 子句中。

  1. SELECT *
    FROM s1
    WHERE EXISTS 
    (
    SELECT 1
    FROM s2
    WHERE s1.Col1 = s2.Col1
    --All columns included here
    AND s1.ColN = s2.ColN
    )
    
  2. SELECT DISTINCT s1.*
    FROM s1
    INNER JOIN s2
    ON s1.Col1 = s2.Col1
    --All columns included here
    AND s1.ColN = s2.ColN