T-SQL:其中xxx IN临时表

Eli*_*eth 16 sql-server temp-tables where in-operator

我有一个临时表,想要检查一个where子句,在临时表中包含某个id/string.

Select...
WHERE MyId  IN MyTempTable
Run Code Online (Sandbox Code Playgroud)

我在MS SQL Management Studio中遇到一般错误.

是"In"运算符不适合临时表?

Mar*_*tos 25

你的语法错了:

SELECT ...
  FROM MyTable
 WHERE MyID IN (SELECT MyID
                  FROM MyTempTable)
Run Code Online (Sandbox Code Playgroud)

我不太喜欢IN运算符,所以我更喜欢这个:

SELECT ...
  FROM MyTable
 WHERE EXISTS (SELECT *
                 FROM MyTempTable
                WHERE MyTable.MyID = MyID)
Run Code Online (Sandbox Code Playgroud)

但这主要是品味问题.


Nei*_*ght 5

你的语法有点错误。你需要做:

SELECT ...
  FROM ...
 WHERE MyId IN (SELECT MyId 
                  FROM MyTempTable);
Run Code Online (Sandbox Code Playgroud)