编号 问题编号 问题答案 1 1 A
2 2 B
3 3 Bcd
4 1 C
5 2 B
6 3 cde
7 1 B
8 2 B
9 3 Cde 我想按照第3题的答案进行分组, :但现在是第1、2题是单选 第3题是多选 用普通的group by 语句实现的是
bcd 1
cde 2最后想实现的结果
现在想实现如果第2道题在选B情况下 再按第3题的答案进行分组
想结果如下: b 1
c 3
d 3
e 2
2 2 B
3 3 Bcd
4 1 C
5 2 B
6 3 cde
7 1 B
8 2 B
9 3 Cde 我想按照第3题的答案进行分组, :但现在是第1、2题是单选 第3题是多选 用普通的group by 语句实现的是
bcd 1
cde 2最后想实现的结果
现在想实现如果第2道题在选B情况下 再按第3题的答案进行分组
想结果如下: b 1
c 3
d 3
e 2
-- Author :SQL77(只为思齐老)
-- Date :2010-02-24 08:41:43
-- Version:
-- Microsoft SQL Server 2000 - 8.00.194 (Intel X86)
-- Aug 6 2000 00:57:48
-- Copyright (c) 1988-2000 Microsoft Corporation
-- Desktop Engine on Windows NT 5.1 (Build 2600: Service Pack 3)
--
----------------------------------------------------------------
--> 测试数据:#TB
if object_id('tempdb.dbo.#TB') is not null drop table #TB
go
create table #TB([A] varchar(3),[B] int)
insert #TB
select 'bcd',1 union all
select 'cde',2
--------------开始查询--------------------------
SELECT A,SUM(B)B FROM
(
select LEFT(A,1)A,B from #TB
UNION ALL
select RIGHT(A,1),B from #TB
UNION ALL
select SUBSTRING(A,2,1),B from #TB
)T GROUP BY A
----------------结果----------------------------
/* (所影响的行数为 2 行)A B
---- -----------
b 1
c 3
d 3
e 2(所影响的行数为 4 行)
*/