我有一个临时表,想在where子句中检查特定的id/string是否包含在临时表中。
Select...
WHERE MyId IN MyTempTable
我在MS SQL Management Studio中遇到了一般性错误。
"In"运算符是否不适用于临时表?
我有一个临时表,想在where子句中检查特定的id/string是否包含在临时表中。
Select...
WHERE MyId IN MyTempTable
我在MS SQL Management Studio中遇到了一般性错误。
"In"运算符是否不适用于临时表?
SELECT ...
FROM MyTable
WHERE MyID IN (SELECT MyID
FROM MyTempTable)
我不太喜欢使用IN运算符,所以我更喜欢这种方式:
SELECT ...
FROM MyTable
WHERE EXISTS (SELECT *
FROM MyTempTable
WHERE MyTable.MyID = MyID)
但这主要是个人口味问题。
您的语法略有错误。您需要这样做:
SELECT ...
FROM ...
WHERE MyId IN (SELECT MyId
FROM MyTempTable);
in
需要一个特定项目的列表。 表通常具有多个字段,如何知道您要使用哪个字段?
您可以使用子查询,where field in (select whatever from #temp)
NOT IN ('a','b','c',NULL)
这样的暴行只是许多动机之一),所以我通常不会在我的思考中考虑这种情况。此外,我并不是指ANSI SQL,而是指产生这些方言的原始设计工作。 - Marcelo Cantos