SQL字符串处理--按分割符拆分字符串

 

例1
实现如下功能
name     data
a|b|c    ...
a|b      ...
a|c      ...
d        ...
统计后
a      1.3  
b      0.83
c      0.83
d      1

也就是  按名字统计 每条记录 按人头平均 统计 a (1/3+1/2+1/2)=1.3

多谢
--示例

 



-- 删除测试
drop   table  tb

/*--结果

name       total        
---------- ------------ 
a          1.33
b          .83
c          .83
d          1.00

例2:
--示例数据

 

 

--删除测试
drop table tb

/*--结果

id          name         
----------- -------------
1           1
1           3
1           4
2           12
2           34
2           67
2           89

(所影响的行数为 7 行)
--*/

 



例3:循环截取法
假设table1表中有字段col1
col的一行存有如下数据1,2,3,4,5,6,7,8
col1中的数据用逗号分割
请问如何提取成如下形式的数据
1
2
3
4
5
6
7
8

 

 

--测试
declare @s varchar(100)
select @s='1,2,3,4,5,6,7,8'
select * from f_split(@s)

--结果
/*
num         
----------- 
1
2
3
4
5
6
7
8

(所影响的行数为 8 行)
*/
'上火温度' ,'中火温度' ,'下火温度'

通过select 语句如果把以上三个字符串作为一个字段值返回,结果如下:

   温度
 上火温度
 中火温度
 下火温度


 

/*
温度                   
-------------------- 
上火温度
中火温度
下火温度

(所影响的行数为 3 行)
*/

例4
Result
2
2,5
2,3
2,3,4
3,5

我想得到这样的结果:
Result  Num
2       4
3       2
4       1
5       2

SQL语句该怎么写,在线等,立即结帖~
--通用的

--示例数据
 

 

--删除测试
drop table tb

/*--测试结果
例5: zjcxc书中的例子:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值