(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语句该如何写
...全文
62 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
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 行受影响)

*/

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧