Мой скрипт имеет переменную, которая не всегда содержит значение. Если есть значение, мне нужен дополнительный пункт WHERE
.Условие в предложении WHERE
DECLARE @identityUserIds NVARCHAR;
SELECT @identityUserIds = (SELECT TOP (1) [userIdsCsv] FROM [identityUsers])
SELECT *
FROM [Users]
-- IF (!ISNULL(@identityUserIds) OR @identityUserIds != '')
WHERE [ID] in (@identityUserIds)
-- ELSE (no extra condition)
Как это сделать?
Я подозреваю, что ваш 'в' условие не будет работать так, как вы хотите его, потому что' значение userIdsCsv' это просто строка с запятыми в нем, а не набором чисел. Сначала вам нужно разбить его, например. как описано [здесь] (http://stackoverflow.com/questions/3735152/most-succinct-way-to-transform-a-csv-string-to-an-table-in-tsql) – Rhumborl
Это правильно, но вот только псевдо-код, иллюстрирующий реальную проблему. Спасибо за ссылку! –