求sql统计记录中字段roblemNumbers中数字个数

tanyuqiong 2007-07-09 07:22:10
表 mytable

ID ProblemNumbers
1 4,5,6
2 10,12
3 7,8,9,10
4 12,15
要求得到结果为 11
...全文
160 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhou968 2008-05-13
  • 打赏
  • 举报
回复

select sum(len(replace(ProblemNumbers,',',',,'))-len(ProblemNumbers)+1) from mytable
zhou968 2008-05-13
  • 打赏
  • 举报
回复

select sum(len(replace(ProblemNumbers,',',,'))-len(ProblemNumbers)+1) from mytable
csdnshao 2008-05-13
  • 打赏
  • 举报
回复
楼上的多了些空格
csdnshao 2008-05-13
  • 打赏
  • 举报
回复
select sum(len(ProblemNumbers)-len(replace(ProblemNumbers, ',', ''))+1) from mytable
sgucxc0 2007-07-09
  • 打赏
  • 举报
回复
笨一点的方法:把字符串拆成单个, 1 4,5,6 -->1,4 1,5 1,6 其他记录一样拆.
然后sum(ProblemNumbers).

昵称被占用了 2007-07-09
  • 打赏
  • 举报
回复
更正:
select sum(len(ProblemNumbers)-len(replace(ProblemNumbers,',',''))+1) from mytable

--测试
select sum(len(ProblemNumbers)-len(replace(ProblemNumbers,',',''))+1) from
(
select 1 as ID, '4,5,6' as ProblemNumbers
union all select
2, '10,12'
union all select
3 , '7,8,9,10'
union all select
4 , '12,15'
) as t

--结果

-----------
11

(所影响的行数为 1 行)

昵称被占用了 2007-07-09
  • 打赏
  • 举报
回复
select sum(len(ProblemNumbers)-len(replace(ProblemNumbers,',',''))) from mytable
昵称被占用了 2007-07-09
  • 打赏
  • 举报
回复
select sum(len(ProblemNumbers)-len(replace(ProblemNumbers,',',''))) fom mytable

34,590

社区成员

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

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