Используя параметр типа таблицы, вы можете сделать что-то вроде следующего:
CREATE TYPE dbo.SomeArray AS TABLE (SomeInt int); --Create the TYPE
GO
--Now the Function
CREATE FUNCTION dbo.Example (@StartDate date, @Array dbo.SomeArray READONLY)
RETURNS TABLE
AS RETURN
SELECT DATEADD(DAY, SomeInt, @StartDate) AS NewDate
FROM @Array
GO
--Now to test
--Declare the TYPE
DECLARE @Array dbo.SomeArray;
--Insert the data
INSERT INTO @Array (SomeInt)
VALUES(7),(1654),(13);
--Test the function
SELECT *
FROM dbo.Example(GETDATE(), @Array) E;
GO
--Clean up
DROP FUNCTION dbo.Example;
DROP TYPE dbo.SomeArray;
Как JOIN
:
FROM dbo.YourTable YT
JOIN @Array A ON YT.SomeInt = A.SomeInt
Как использовать EXISTS
:
WHERE EXISTS (SELECT 1 FROM @Array A WHERE YT.SomeInt = A.SomeInt)