逗号问题

licun8223 2004-06-14 11:53:58
我是想从程序中参数到存储过程中进行操作。如:a='''01'''+','+'''02''';把a里的整个字符串传到存储过程中进行Select * from Table Where UserID in (a)操作,问题是Sql把','看成是字符了,怎么样才能把这个逗号变成系统的分隔符而不是字符呢?
...全文
110 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zclxyh 2004-06-14
  • 打赏
  • 举报
回复
declare @a varchar(200),@sql varchar(8000)
set @a='''01'''+','+'''02'''
select @sql='select * from table where userid in ('+@a+')'
exec (@sql)
licun8223 2004-06-14
  • 打赏
  • 举报
回复
我的意思,Table中有一个字段为UserID 里面的记录有
UserID
01
02
03
04
想用Select * from Table Where UserID in (a)的方式把满足条件的记录选出来,a这个变量可以改变
skyboy0720 2004-06-14
  • 打赏
  • 举报
回复
用charindex去匹配吧!
licun8223 2004-06-14
  • 打赏
  • 举报
回复
我想出来了,动态创建一张临时表,然后把@a里的01,02放入表中,写成 SELECT * FROM Table Where ID in (SELECT ID FROM #Table) 就可以实现了!!
licun8223 2004-06-14
  • 打赏
  • 举报
回复
你看有没有其他办法,因为@a我有用在游标上,在游标上就不能用exec(),该怎么做呀!!!郁闷............这个问题也想了好久了,还是没有办法!
zclxyh 2004-06-14
  • 打赏
  • 举报
回复
恐怕不行
licun8223 2004-06-14
  • 打赏
  • 举报
回复
这样的方法可以,还有没有其它的方法呢?因为我不想改那么多的代码,有没有办法让Sql知道逗号它是分隔符而不是字符呢?
declare @a varchar(200)
set @a='''01'''+','+'''02'''
select * from table where userid in (@a)
直接这样就可以得出记录来!

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧