declare @X varchar(8000) declare @temp table(txt varchar(100)) set @X='' select @X=@X+ TXT from T --合并成字符串
declare @i int set @i=charindex('|',@X) while @i>=1 begin insert @temp values(left(@X,@i-1)) set @X=substring(@X,@i+1,len(@X)-@i) set @i=charindex('|',@X) end --字符串转表 if @X<>'' insert @temp values(@X)
select txt,count(*) from @temp group by txt
水平有限,SQL语句看不太明白,最好是C#
它这个和的使用C#查分是一样的。 你现在把它都取出来了也拆分了。 string rr = "7|13|45|27|24|3|47|12|23|25|25|17|41|47|12|13|4|29|7|24|23|".TrimEnd('|'); String[] EE = rr.Split('|'); ArrayList arr = new ArrayList(); foreach(string _tmp in EE){ if (!arr.Contains(_tmp)) { arr.Add(_tmp); } } 这样就排除了重复的
这个问题最好在数据库搞定。因为数据量可能会大,节省带宽。在程序里面实现 group by 功能,对于初学者太难。
例如: string rr = "7|13|45|27|24|3|47|12|23|25|25|17|41|47|12|13|4|29|7|24|23|".TrimEnd('|');
String[] EE = rr.Split('|');
2,有了table,统计不同记录数就相当容易了,可以把所有列都拆分开放到一个字段下面去
3,统计重复的次数,row_number()函数就可以解决了
declare @temp table(txt varchar(100))
set @X=''
select @X=@X+ TXT from T --合并成字符串
declare @i int
set @i=charindex('|',@X)
while @i>=1
begin
insert @temp values(left(@X,@i-1))
set @X=substring(@X,@i+1,len(@X)-@i)
set @i=charindex('|',@X)
end --字符串转表
if @X<>''
insert @temp values(@X)
select txt,count(*) from @temp group by txt
水平有限,SQL语句看不太明白,最好是C#
你现在把它都取出来了也拆分了。
string rr = "7|13|45|27|24|3|47|12|23|25|25|17|41|47|12|13|4|29|7|24|23|".TrimEnd('|');
String[] EE = rr.Split('|');
ArrayList arr = new ArrayList();
foreach(string _tmp in EE){
if (!arr.Contains(_tmp))
{
arr.Add(_tmp);
}
}
这样就排除了重复的