T-SQL: где xxx IN временная таблица
У меня есть временная таблица, и я хочу проверить, где предложение where определенная id/ строка содержится в временной таблице.
Select...
WHERE MyId IN MyTempTable
Я получаю общую ошибку в MS SQL Management studio.
оператор "In" не подходит для временных таблиц?
3 ответа
Решение
Ваш синтаксис неверен:
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)