23

一時テーブルがあり、特定のID/文字列が一時テーブルに含まれているかどうかをwhere句で確認したいと思います。

Select...
WHERE MyId  IN MyTempTable

MS SQLManagementStudioで一般的なエラーが発生します。

「In」演算子は一時テーブルには適していませんか?

4

3 に答える 3

31

構文が間違っています:

SELECT ...
  FROM MyTable
 WHERE MyID IN (SELECT MyID
                  FROM MyTempTable)

IN演算子はあまり好きではないので、次のようにします。

SELECT ...
  FROM MyTable
 WHERE EXISTS (SELECT *
                 FROM MyTempTable
                WHERE MyTable.MyID = MyID)

しかし、それは主に好みの問題です。

于 2010-12-06T15:30:59.727 に答える
5

構文が少し間違っています。あなたがする必要があります:

SELECT ...
  FROM ...
 WHERE MyId IN (SELECT MyId 
                  FROM MyTempTable);
于 2010-12-06T15:31:43.247 に答える
0

in特定のアイテムのリストが必要です。通常、テーブルには複数のフィールドがありますが、どのフィールドを意味するのかをどのように知るのですか?

サブクエリを使用できます。where field in (select whatever from #temp)

于 2010-12-06T15:31:45.093 に答える