Результаты запроса для отображения в SP - PullRequest
1 голос
/ 14 июля 2010

Я уверен, что это где-то обсуждалось, но после поиска некоторое время я не могу его найти.

Я строю хранимую процедуру для SQL 2000, и мне нужно создать список чиселчто я могу использовать в функции IN.

Запрос выглядит следующим образом

SELECT DISTINCT type FROM dbo.table WHERE building = @currentBuilding

Это обычно возвращает 1-5 результатов, я ищу способ поместить это вnvarchar или что-то в этом роде.

Я хотел бы мечтать, что есть простой способ сделать это, так как он находится в 1 столбце, но у меня есть чувство, что я собираюсь закончить итерацией результатов.

Кроме того, nvarchar - правильная переменная для использования?Есть ли лучший способ, чтобы я мог хранить их, чтобы заставить IN работать быстрее?

Спасибо!

1 Ответ

1 голос
/ 15 июля 2010

попробуйте что-то вроде:

declare @All nvarchar(1000)
SET @All=null

SELECT
    @All=ISNULL(@All+', ','')+CONVERT(varchar(10),d.value)
    FROM (SELECT 1 AS Value UNION SELECT 22 UNION SELECT 333 UNION SELECT 4444) d

PRINT @All

ВЫВОД:

1, 22, 333, 4444

это то, что вы можете использовать:

SELECT
    @All=ISNULL(@All+', ','')+CONVERT(varchar(10),d.type)
    FROM (SELECT DISTINCT type 
              FROM dbo.table 
              WHERE building = @currentBuilding
         ) d
...