sql查询中以','截取并转化成一列的值

比如我的user表中有这样的一行数据
ids
1,2,3,4,5

sql查询出来的结果是这样 以,截取
select id from user......

id
1
2
3
4
5

该怎么实现呢

阅读 3.5k
3 个回答

这里有用存储过程实现的例子,供你参考

create function f_split(@c varchar(2000),@split varchar(2))
returns @t table(col varchar(20))
as
begin

while(charindex(@split,@c)<>0)
begin
insert @t(col) values (substring(@c,1,charindex(@split,@c)-1))
set @c = stuff(@c,1,charindex(@split,@c),'')
end
insert @t(col) values (@c)
return
end
go

select * from dbo.f_split('dfkd,dfdkdf,dfdkf,dffjk',',')

drop function f_split
col
--------------------
dfkd
dfdkdf
dfdkf
dffjk 

参考原文: http://www.jb51.net/article/2...

你这是什么逻辑?你是要实现 2 是否包含在 1,2,3,4,5里面吗?

感觉后台完成此操作相对简单一点呀
如果传入的StrIds值为 111,222,333,444,555

public int Test(string StrIds)
{
    string[] _ids = StrIds.Split(',');  //按逗号分隔数组
    foreach (string id in _ids)
    {
        //分割后的_ids如下:
        //   [0]     111
        //   [1]     222
        //   [2]     333
        //   [3]     444
        //   [4]     555
        //类似一张表、只是从0开始记位
        //可循环执行对应id的程序
    }
    return 0;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进