T1分组编号 组内编码 所属省 所属市 姓名
1001 01 江苏 南京 王1
1001 02 江苏 南京 王2
1001 03 江苏 南京 王3
1002 01 江苏 常州 张1
1002 02 江苏 常州 张2
1002 03 江苏 常州 张3
1003 01 湖南 长沙 李1
1003 03 湖南 长沙 李3
.....希望查询格式如下江苏 南京
1001
01 王1
02 王2
03 王3江苏 常州
1002
01 张1
02 张2
03 张3湖南 长沙
1003
01 李1
03 李3
。。不用考虑相同组编码不同省市问题
1001 01 江苏 南京 王1
1001 02 江苏 南京 王2
1001 03 江苏 南京 王3
1002 01 江苏 常州 张1
1002 02 江苏 常州 张2
1002 03 江苏 常州 张3
1003 01 湖南 长沙 李1
1003 03 湖南 长沙 李3
.....希望查询格式如下江苏 南京
1001
01 王1
02 王2
03 王3江苏 常州
1002
01 张1
02 张2
03 张3湖南 长沙
1003
01 李1
03 李3
。。不用考虑相同组编码不同省市问题
if object_id('[T1]') is not null drop table [T1]
go
create table [T1]([分组编号] int,[组内编码] varchar(2),[所属省] varchar(4),[所属市] varchar(4),[姓名] varchar(3))
insert [T1]
select 1001,'01','江苏','南京','王1' union all
select 1001,'02','江苏','南京','王2' union all
select 1001,'03','江苏','南京','王3' union all
select 1002,'01','江苏','常州','张1' union all
select 1002,'02','江苏','常州','张2' union all
select 1002,'03','江苏','常州','张3' union all
select 1003,'01','湖南','长沙','李1' union all
select 1003,'03','湖南','长沙','李3'
---查询---
select 所属省,所属市
from
(
select distinct 1 as px,分组编号,所属省,所属市 from T1
union all
select distinct 2,分组编号,'',ltrim(分组编号) from T1
union all
select distinct 3,分组编号,组内编码,姓名 from T1
) t
order by 分组编号,px
---结果---
所属省 所属市
---- ------------
江苏 南京
1001
01 王1
02 王2
03 王3
江苏 常州
1002
01 张1
02 张2
03 张3
湖南 长沙
1003
01 李1
03 李3(所影响的行数为 14 行)