select 姓名,编号,性别,年龄,职位
from(
select 姓名,编号,性别,年龄=cast(年龄 as varchar),职位
,s1=部门名称,s2=编号 
from 人员表
union all
select '','',部门名称,'',''
,s1=部门名称,s2=''
from 人员表
group by 部门名称
)a order by s1,s2

解决方案 »

  1.   

    --测试--测试数据
    declare @t table(部门名称 varchar(10),编号 varchar(10),姓名 varchar(10),性别 char(2),年龄 int,职位 varchar(10))
    insert @t select '财务部','001','李某某','女',30,'助理'
    union all select '财务部','002','刘某某','男',25,'出纳'
    union all select '办公室','003','张某某','女',21,'文员'--查询
    select 姓名,编号,性别,年龄,职位
    from(
    select 姓名,编号,性别,年龄=cast(年龄 as varchar),职位
    ,s1=部门名称,s2=编号 
    from @t
    union all
    select '','',部门名称,'',''
    ,s1=部门名称,s2=''
    from @t
    group by 部门名称
    )a order by s1,s2/*--测试结果姓名         编号         性别         年龄                             职位         
    ---------- ---------- ---------- ------------------------------ ---------- 
                          办公室                                       
    张某某        003        女          21                             文员
                          财务部                                       
    李某某        001        女          30                             助理
    刘某某        002        男          25                             出纳(所影响的行数为 5 行)
    --*/