Если это одна из более поздних версий SQL Server, вы можете сделать что-то вроде этого ...
DECLARE @Plan_ID nvarchar(100)
SET @Plan_ID= '2151,1886'
SELECT DISTINCT Plan_Dict_Id
FROM REF_Plan_Dictionary d
JOIN string_split(@Plan_ID, ',') s ON d.Plan_Dict_Id = s.[value]
Если вы используете старую версию, вы можете поместить весь оператор в строка, а затем выполните ее, однако у вас есть проблема с вашей первой строкой, поскольку вы не добавляете кавычки вокруг строки ... Я объяснил это ниже.
DEClare @Plan_ID nvarchar(100) set @Plan_ID=REPLACE('2151,1886',',',''',''')
DECLARE @sql nvarchar(max)
SET @SQL = 'select distinct Plan_Dict_Id from REF_Plan_Dictionary where CAST(Plan_Dict_Id as int) in (''' + @Plan_ID + ''')'
EXEC (@sql)