【问题标题】:Comma separated list in SQLSQL中的逗号分隔列表
【发布时间】:2012-04-19 08:57:44
【问题描述】:

如何在 SQL 中循环使用逗号分隔的列表?我有一个 ID 列表,我需要将这些 ID 传递给存储过程。我不能更改存储过程。我需要弄清楚如何为每个 id 执行 SP。给我一些想法,我可以从那里继续。

谢谢。

【问题讨论】:

  • 是否要单独调用每个 ID 的存储过程?您在 SQL 之外使用什么语言?
  • 如果不能改变存储的,为什么不多次调用呢?
  • SQL Server 2008-是的,我想为每个 id 调用存储过程,因为我无法更改 SP 本身。我已经执行了 SQL 查询。没有使用其他语言。
  • +1 表示“给我一些想法,我可以从那里继续。”

标签: sql sql-server sql-server-2008


【解决方案1】:
declare @S varchar(20)
set @S = '1,2,3,4,5'

while len(@S) > 0
begin
  --print left(@S, charindex(',', @S+',')-1)
  exec YourSP left(@S, charindex(',', @S+',')-1)
  set @S = stuff(@S, 1, charindex(',', @S+','), '')
end

试用 SE 数据:Walk the string

【讨论】:

  • 这太完美了!谢谢!
  • 这正是我想要的,非常感谢!
猜你喜欢
  • 1970-01-01
  • 2018-08-07
  • 1970-01-01
  • 2016-10-24
  • 2012-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多