В TSQL (SQL SERVER 2008), как бы я передавал разделенный запятыми список строковых значений, например. «золото, серебро, медь» для пользовательской функции, которая задает параметр varchar.
Я понимаю, что если я определю параметр varchar в моем UDF, скажем
@commodityList, который занимает список «золото, серебро, медь», я не могу использовать оператор IN. т.е.
SELECT * FROM Prodn where commodity in (@commodList).
Я прочитал несколько статей о подходе с использованием табличных значений параметров, однако я считаю, что переход по этому пути будет означать разбиение моей строки на куски - для вставки в табличный параметр, например:
DECLARE @mylist commodity_list_tbltype
INSERT @mylist VALUES('gold'),('silver'),('copper')
Мне интересно, существует ли прямой подход для установки строкового аргумента в том виде, как он есть, и использования оператора SQL IN в UDF.
Приветствие.