Я новичок в SQL. Это может быть старый пост, но я не получил для него упрощенного решения.
Меня беспокоит, как использовать предложение IN
в динамическом c SQL, где элементы IN
основаны на параметрах, имеющих несколько значений.
У меня есть таблица с именем Employee.
введите описание изображения здесь
Я написал динамический c SQL, который вернет списки сотрудников, где Department = 'IT,System'
SQL:
Declare @Department varchar(50)
Declare @SQL nvarchar(MAX)
Declare @Parameters nvarchar(50)
Set @Department='IT,System'
SET @SQL = 'select * from Employee where Department IN(@PDepartment)'
SET @Parameters=N'@PDepartment nvarchar(50)'
--PRINT @SQL
EXEC sp_Executesql @SQL,@Parameters,@PDepartment=@Department
Этот сценарий не работает более чем для одного отдела и не возвращает результата. Тот же запрос возвращает результат if @Department = 'IT'
Здесь я упомянул небольшую часть реального сценария. В фактическом случае имя таблицы и имя столбца, которое будет включено в оператор IN
, являются динамическими c и будут приняты как сохраненный параметр pro c.
Спасибо за помощь.