我正在使用查询使用以下查询填充TableAdapter
SELECT Key1, Character01
FROM Ice.UD08
WHERE (Character01 IN (@MPS))
如果我只传递1个值作为参数(例如1155),这可以正常工作,如下面的代码所示
SELECT
CASE grade
CASE "1045"
grade = "1155"
END SELECT
Me.UD08TableAdapter.FillBy(Me.Epicor10DataSet.UD08, grade)
如果我尝试修改下面的代码以包含多个值,如下例所示,我没有结果
SELECT
CASE grade
CASE "1045"
grade = "1155,1160,1165"
END SELECT
Me.UD08TableAdapter.FillBy(Me.Epicor10DataSet.UD08, grade)
我正在尝试传递一个基本上将SQL语句更改为如下的参数
SELECT Key1, Character01
FROM Ice.UD08
WHERE (Character01 IN (1155, 1160, 1165))
有办法做到这一点吗?谢谢。
答案 0 :(得分:0)
如果您传递了分隔列表,例如'1155,1160,1165'
,那么您需要将这些值拆分出来。您可以使用STRING_SPLIT
执行此操作;因此你的语法将成为:
SELECT Key1, Character01
FROM Ice.UD08
WHERE Character01 IN (SELECT [value]
FROM STRING_SPLIT(@YourParameter));
然而,另一种方法是使用用户定义的表数据类型。 Table-Valued Parameters