Вы можете поместить эти значения в табличную переменную или использовать динамический SQL Вот примеры каждого из них:
ТАБЛИЦА ПЕРЕМЕННАЯ
DECLARE @FrameNumbers TABLE (
Frame NVARCHAR(20)
)
INSERT INTO @FrameNumbers (
Frame
)
SELECT 'p1'
UNION ALL SELECT 'p2'
вариант 1:
SELECT * FROM myTable WHERE c1 in (
SELECT Frame
FROM @FrameNumbers
)
вариант 2:
SELECT
m.*
FROM myTable m
INNER JOIN @FrameNumbers f ON f.Frame = m.c1
Все хорошо, но это мое любимое:
ДИНАМИЧЕСКИЙ SQL
DECLARE
@FrameNumber nvarchar(20),
@sql nvarchar(max),
@ParamDef nvarchar(1000)
SET @FrameNumber = '(p1, p2)'
SET @sql = N'SELECT FROM myTable WHERE c1 IN ' + @FrameNumber
EXECUTE dbo.sp_ExecuteSQL @sql