T-SQL: где xxx IN временная таблица

У меня есть временная таблица, и я хочу 9X_where проверить в предложении where, содержится 9X_sql-srever ли в временной таблице определенный идентификатор 9X_temp-tables / строка.

Select...
WHERE MyId  IN MyTempTable

Я получаю общую ошибку в студии 9X_temp-tables управления MS SQL.

не подходит ли оператор 9X_sql-srever "In" для временных таблиц?

25
0
2
Общее количество ответов: 2

Ответ #1

Ответ на вопрос: T-SQL: где xxx IN временная таблица

Ваш синтаксис неверен:

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

Мне не очень нравится 9X_sql-srever оператор IN, поэтому я предпочитаю это:

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

Но 9X_temp-tables это во многом дело вкуса.

33
1

  • @gbn: Как я уже сказал, это во многом вопрос вкуса, но мои доводы больше основаны на моем понимании реляционной модели, чем просто на согласованности. ...

Ответ #2

Ответ на вопрос: T-SQL: где xxx IN временная таблица

Ваш синтаксис немного неверен. Вам необходимо 9X_ms-sql-server сделать:

SELECT ...
  FROM ...
 WHERE MyId IN (SELECT MyId 
                  FROM MyTempTable);

5
0