sql 有个字段里存的用逗号相隔的数据。如何对这些数据进行统计
项目表id1项目名称1负责人1,负责人2,负责人3项目表id2项目名称2负责人1,负责人2项目表id3项目名称3负责人3我想统计每个负责人都负责了多少个项目。应该怎么写语...
项目表id1 项目名称1 负责人1,负责人2,负责人3
项目表id2 项目名称2 负责人1,负责人2
项目表id3 项目名称3 负责人3
我想统计每个负责人都负责了多少个项目。应该怎么写语句
这里的负责人1 负责人2 是我随便 写的。只是想表达这是几个人名。张三,李四这种。全是未知的不知道有哪些人名。 展开
项目表id2 项目名称2 负责人1,负责人2
项目表id3 项目名称3 负责人3
我想统计每个负责人都负责了多少个项目。应该怎么写语句
这里的负责人1 负责人2 是我随便 写的。只是想表达这是几个人名。张三,李四这种。全是未知的不知道有哪些人名。 展开
1个回答
展开全部
select count(*)from table where 字段 like ‘%负责人%’
想复杂一些,就要写函数了
create function func_splitstring
(@str nvarchar(max),@split varchar(10))
returns @t Table (c1 varchar(100))
as
begin
declare @i int
declare @s int
set @i=1
set @s=1
while(@i>0)
begin
set @i=charindex(@split,@str,@s)
if(@i>0)
begin
insert @t(c1) values(substring(@str,@s,@i-@s))
end
else begin
insert @t(c1) values(substring(@str,@s,len(@str)-@s+1))
end
set @s = @i + 1
end
return
end
select * from dbo.func_splitstring('人1,人2,人3', ',')
执行完之后,然后再用in的方法来进行统计
想复杂一些,就要写函数了
create function func_splitstring
(@str nvarchar(max),@split varchar(10))
returns @t Table (c1 varchar(100))
as
begin
declare @i int
declare @s int
set @i=1
set @s=1
while(@i>0)
begin
set @i=charindex(@split,@str,@s)
if(@i>0)
begin
insert @t(c1) values(substring(@str,@s,@i-@s))
end
else begin
insert @t(c1) values(substring(@str,@s,len(@str)-@s+1))
end
set @s = @i + 1
end
return
end
select * from dbo.func_splitstring('人1,人2,人3', ',')
执行完之后,然后再用in的方法来进行统计
追问
这里的负责人1 负责人2 是我随便 写的。只是想表达这是几个人名。张三,李四这种。全是未知的不知道有哪些人名。
好像和你给的答案不太一致。不过很谢谢你。
本应该设个一对多表就好弄了。可客户要求不设表。这人名全是随机录的。可他还想统计。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询