Sql server 在Where语句的1个参数中使用多个值
我正在使用一个查询用以下查询填充Sql server 在Where语句的1个参数中使用多个值,sql-server,vb.net,Sql Server,Vb.net,我正在使用一个查询用以下查询填充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.Epico
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))
有办法做到这一点吗?谢谢。如果要传递带分隔符的列表,例如
'115511601165'
,则需要拆分这些值。您可以使用STRING_SPLIT
执行此操作;因此,您的语法将变成:
SELECT Key1, Character01
FROM Ice.UD08
WHERE Character01 IN (SELECT [value]
FROM STRING_SPLIT(@YourParameter));
但是,另一种方法是使用用户定义的表数据类型