Ситуация:
У меня есть TVF
с одним параметром DATE
.Я хочу, чтобы пользователь мог ввести список строк в качестве дополнительного параметра.Я знаком с пользовательскими типами, но не хочу его использовать.
Функция: dbo.fnExample(@StartDate)
Вот мои два варианта: Опция 1
SELECT base.*
FROM (SELECT * FROM dbo.fnExample('2019-05-01')) AS base
INNER JOIN ( VALUES
('something'),
('something2'),
('n'),
(...)) AS base2(ColumnA)
ON base.ColumnA=base2.ColumnA
Опция 2 (не работает, потому что я не уверен, как соединить этот столбец с cross apply
).
SELECT *
FROM ( VALUES
('something'),
('something2'),
('n'),
(...)) AS base2(ColumnA)
CROSS APPLY dbo.fnExample('2019-05-01')
Цель:
У меня вопрос в три раза.Что бы иметь лучшую производительность?Есть ли другие варианты, не упомянутые выше, которые могли бы быть лучше?Каковы ограничения от предложенных вариантов?Спасибо за вашу помощь!