-1

在我的 rdbms 上,这些表达式给出完全相同的输出:

select avd from avdelning where avd not in(select avd from försäljning) order by avd

select avd from avdelning except (select avd from försäljning) order by avd

似乎你可以用 SQL 写的东西你可以用 SQLEXCEPTNOT IN,同样地 for UNIONandORANDand INTERSECT。你能告诉我这些关键字之间的区别吗?例如,与其他构造select * from person where person not in (select * from person where name='foo')相同select * from person except where name='foo'且相似。它们真的是等价的吗?

SELECT PersonId FROM person EXCEPT (SELECT PersonId FROM Addresses WHERE streetname='Elm Street')

=

SELECT PersonId FROM person WHERE PersonId NOT IN(SELECT PersonID FROM Addresses WHERE StreetName = 'Elm Street')

?

4

1 回答 1

1

这可能会有所帮助:

http://www.vbdotnetheaven.com/uploadfile/sscheral/sql-union-sql-intersect-sql-except-sql-exists-and-sql-case-for-beginners/

实际上,我认为“差异”之一是 INTERSECT 和 EXCEPT 并非在所有平台上都实现(这是我认为 Sung 所建议的)。

于 2012-06-01T14:49:00.593 回答