首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

查询某个值在某行各列中出现的次数解决方案

2012-04-13 
查询某个值在某行各列中出现的次数表 T_UserCountIDD1D2D3D4D51√√ABC2√ABAA3ANULLAEF4FAGED得到结果IDD1D2

查询某个值在某行各列中出现的次数
表 T_UserCount

ID D1 D2 D3 D4 D5  

1 √ √ A B C  
2 √ A B A A
3 A NULL A E F
4 F A G E D

得到结果 
ID D1 D2 D3 D4 D5 A B C D E F G

1 √ √ A B C 1 1 1 0 0 0 0
2 √ A B A A 3 1 0 0 0 0 0
3 A √ A E F 2 0 0 0 1 1 0
4 F A G E D 1 0 0 1 1 1 1

PS:也就是说查询某个数值在一行中分别在各列中出现几次的报表。。。小弟分不多请高手赐教。。。

[解决办法]

SQL code
create table T_UserCount(ID int, D1 varchar(3), D2 varchar(3), D3 varchar(3),D4 varchar(3),D5 varchar(3))insert into T_UserCount    select 1, '√', '√', 'A', 'B', 'C' union all   select 2, '√', 'A', 'B', 'A', 'A' union all select 3, 'A', '√', 'A', 'E', 'F' union all select 4, 'F', 'A', 'G', 'E', 'D'select ID,D1,D2,D3,D4,D5,5-len(replace(D1+D2+D3+D4+D5,'A','')) 'A',5-len(replace(D1+D2+D3+D4+D5,'B','')) 'B',5-len(replace(D1+D2+D3+D4+D5,'C','')) 'C',5-len(replace(D1+D2+D3+D4+D5,'D','')) 'D',5-len(replace(D1+D2+D3+D4+D5,'E','')) 'E',5-len(replace(D1+D2+D3+D4+D5,'F','')) 'F',5-len(replace(D1+D2+D3+D4+D5,'G','')) 'G'from T_UserCountID          D1   D2   D3   D4   D5   A           B           C           D           E           F           G----------- ---- ---- ---- ---- ---- ----------- ----------- ----------- ----------- ----------- ----------- -----------1           √    √    A    B    C    1           1           1           0           0           0           02           √    A    B    A    A    3           1           0           0           0           0           03           A    √    A    E    F    2           0           0           0           1           1           04           F    A    G    E    D    1           0           0           1           1           1           1(4 row(s) affected) 

热点排行
Bad Request.