Таблица передачи SQL-запросов к хранимой процедуре - PullRequest
2 голосов
/ 12 мая 2010

У меня есть список значений DateTime, и для каждого значения мне нужно извлечь что-то из базы данных. Я хотел бы сделать это с помощью одного запроса. Я знаю, что можно передать таблицу (список) в хранимую процедуру, но я не уверен, как написать сам запрос.

Допустим, у меня есть следующая таблица:

CREATE TABLE Shows(
    ShowId [int] NOT NULL, 
    StartTime DateTime NOT NULL, 
    EndTime DateTime NOT NULL 
)

и массив дат

DECLARE @myDateArray MyCustomDateArrayType

Теперь, если бы я выбирал один элемент, я написал бы запрос, подобный этому:

SELECT * FROM Shows
WHERE StartTime > @ArrayItem and @ArrayItem < EndTime

где @ArrayItem - элемент из @myDateArray.

Но как мне сформулировать запрос, который будет извлекать информацию для всех элементов массива?

1 Ответ

2 голосов
/ 12 мая 2010

Это должно сделать это:

SELECT s.* 
FROM Shows s
    JOIN @MyDateArray t ON s.StartTime > t.TableVarDateField 
        AND t.TableVarDateField < s.EndTime
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...