(sql)这种表结构如何查询

lwtwrm 2015-11-26 05:26:54
表中数据如下:

aa
bb
aa,bb
bb,cc
bb,cc,dd


要求查询后的结果是没个数值的个数分别是少
结果应该是:
aa 2
bb 4
cc 2
dd 1

请问各位大神这种sql语句该如何写
...全文
29 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lwtwrm 2015-11-26
大神,跪拜,看到回答就知道自己要走的路还很远
回复
--小F-- 2015-11-26
----------------------------------------------------------------
-- Author  :fredrickhu(小F,向高手学习)
-- Date    :2015-11-26 17:48:53
-- Version:
--      Microsoft SQL Server 2012 - 11.0.2100.60 (X64) 
--	Feb 10 2012 19:39:15 
--	Copyright (c) Microsoft Corporation
--	Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
--
----------------------------------------------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go 
create table [tb]([col] varchar(8))
insert [tb]
select 'aa' union all
select 'bb' union all
select 'aa,bb' union all
select 'bb,cc' union all
select 'bb,cc,dd'
--------------开始查询--------------------------
SELECT col,COUNT(1) AS num 
FROM 
(
Select
    COl=substring(a.Col,b.number,charindex(',',a.Col+',',b.number)-b.number) 
from 
    Tb a join master..spt_values  b 
    ON B.type='p' AND B.number BETWEEN 1 AND LEN(A.col)
where
     substring(','+a.COl,b.number,1)=',') AS t 
GROUP BY col 

----------------结果----------------------------
/* col      num
-------- -----------
aa       2
bb       4
cc       2
dd       1

(4 行受影响)

*/
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-11-26 05:26
社区公告
暂无公告