【发布时间】:2016-10-06 08:22:18
【问题描述】:
我想传递一个 int 的 csv
1,2,3,4,5,6,7
到一个存储过程,以便我可以在 IN() 中使用传入的值,以便
IN(1,2,3,4,5,6,7)
这可能吗?
【问题讨论】:
-
所以 CSV 总是会有 1 行的值?
-
您可以使用动态 sql 或标记答案中指出的拆分函数。拆分时,您可以加入存储拆分值的表,或
in (select value from splitValues) -
你也可以看看这里。标记的答案是使用递归 cte,它工作得很好,但效率很低。这里有一些更好的选择。 sqlperformance.com/2012/07/t-sql-queries/split-strings
-
你真正想做的是传入一个表值参数。
标签: sql-server