Я уверен, что это обсуждается где-то, но после поиска какое-то время я не могу его найти.Результаты запроса в SP
Я строю хранимую процедуру для SQL 2000, и мне нужно создать список чисел, которые я могу использовать в функции IN.
Запрос выглядит следующим образом
SELECT DISTINCT type FROM dbo.table WHERE building = @currentBuilding
Это возвращение, как правило, между 1-5 результатами, я ищу способ, чтобы положить, что в NVARCHAR или что-то.
Я хотел бы мечтать, что есть простой способ сделать это, так как он находится в 1 колонке, но у меня есть чувство, что я закончу повторение результатов.
В качестве стороны, является nvarchar правой переменной для использования? есть ли лучший способ сохранить эти файлы, чтобы сделать работу IN быстрее?
Спасибо!
я считать, что есть какая-то причина, что вы не можете просто поместите запрос непосредственно в предложение 'IN'? –
@Martin Smith: Я мог бы просто поместить его в предложение IN, но я должен использовать его много раз, поэтому я решил, что на сервере будет проще, если я сохраню его как переменную. – Shaded
Не обязательно. Это зависит от того, насколько дорого он рассчитан. Удалив запрос из исходного контекста, вы можете лишить оптимизатора запросов некоторых оптимизационных возможностей в зависимости от того, как вы его используете. Я полагаю, что вам нужно использовать динамический SQL или функцию split для использования этого? Если поэтому одна переменная таблицы столбцов с «PRIMARY KEY» в столбце «тип» может быть лучше, если вам не нужно передавать список вокруг разных процедур. –