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

发布于 2022-09-06 08:42:08 字数 170 浏览 23 评论 0

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

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

id
1
2
3
4
5

该怎么实现呢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

贪恋 2022-09-13 08:42:08

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

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...

客…行舟 2022-09-13 08:42:08

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

相思碎 2022-09-13 08:42:08

感觉后台完成此操作相对简单一点呀
如果传入的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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文