字段 ID 值
int narchar
1 14941|1|2010-9-4 10:05:10,15015|1|2010-9-4 10:04:40,12166|1|2010-9-4 8:32:25
2 14869|1|2010-9-4 10:03:58
3 14843|1|2010-9-4 9:38:58
用SQL统计出 1、数值","前||2个竖线中间的ID,的信息有多少条
2、每个“,”号前第一个“|”的编号有几个
不重复的 SQL语句正确答案应该是 |1| 的有 3 条,|1|参与的第一个|前的不同编号为 5 个
急,希望高手帮忙,答案已经有了,就是希望知道SQL语句怎么写
int narchar
1 14941|1|2010-9-4 10:05:10,15015|1|2010-9-4 10:04:40,12166|1|2010-9-4 8:32:25
2 14869|1|2010-9-4 10:03:58
3 14843|1|2010-9-4 9:38:58
用SQL统计出 1、数值","前||2个竖线中间的ID,的信息有多少条
2、每个“,”号前第一个“|”的编号有几个
不重复的 SQL语句正确答案应该是 |1| 的有 3 条,|1|参与的第一个|前的不同编号为 5 个
急,希望高手帮忙,答案已经有了,就是希望知道SQL语句怎么写
select count(*) from tb
where charindex('|1|',substring(narchar,1,charindex(' ',narchar,1))) >0
drop table tb
create table tb
(
id int,
narchar varchar(100)
)
insert into tb
select 1, '14941|1|2010-9-4 10:05:10,15015|1|2010-9-4 10:04:40,12166|1|2010-9-4 8:32:25'
union all
select 2, '14869|1|2010-9-4 10:03:58'
union all
select 3, '14843|1|2010-9-4 9:38:58'
查询
select count(*) from tb
where charindex('|1|',substring(narchar,1,charindex(' ',narchar,1))) >0结果
3
不好意思
那第二个SQL了?
select count(*) from tb
where isnumeric(substring(narchar,charindex('|',narchar,1)+1,charindex('|',substring(narchar,charindex('|',narchar,1),len(narchar)),1)))=1结果
3
select sum((len(narchar)-len(replace(narchar,'|1|','')))/3) as 个数
from tb
结果
5