试一下,没测试
select 卡号,姓名,
       (case 卡号 when '信息' then '' else 省级代码 end) as 省级代码,
       (case 卡号 when '信息' then '' else 省份 end) as 省份
from (select 卡号,姓名,省级代码,'' as 省份 from t
      union all
      select '信息' as 卡号,'' as 姓名,aa.省级代码,aa.省份 
      from (select distinct 省级代码,省份) aa 
     ) bb
order by bb.卡号 

解决方案 »

  1.   

    select 卡号,姓名,
           (case 卡号 when '信息' then '' else 省级代码 end) as 省级代码,
           (case 卡号 when '信息' then '' else 省份 end) as 省份
    from (select 卡号,姓名,省级代码,'' as 省份 from t
          union all
          select '信息' as 卡号,'' as 姓名,aa.省级代码,aa.省份 
          from (select distinct 省级代码,省份 from 表) aa  
         ) bb
    order by bb.卡号
      

  2.   

    COMPUTE 子句
    生成合计作为附加的汇总列出现在结果集的最后。当与 BY 一起使用时,COMPUTE 子句在结果集内生成控制中断和分类汇总。可在同一查询内指定 COMPUTE BY 和 COMPUTE。语法
    [ COMPUTE
        { { AVG | COUNT | MAX | MIN | STDEV | STDEVP
            | VAR | VARP | SUM }
                ( expression ) } [ ,...n ]
        [ BY expression [ ,...n ] ] 参数
    AVG | COUNT | MAX | MIN | STDEV | STDEVP | VAR | VARP | SUM指定要执行的聚合。下面是 COMPUTE 子句使用的行聚合函数:行聚合函数 结果 
    AVG 数字表达式中所有值的平均值 
    COUNT 选定的行数 
    MAX 表达式中的最高值 
    MIN 表达式中的最低值 
    STDEV 表达式中所有值的统计标准偏差 
    STDEVP 表达式中所有值的填充统计标准偏差 
    SUM 数字表达式中所有值的和 
    VAR 表达式中所有值的统计方差 
    VARP 表达式中所有值的填充统计方差 
    没有等同于 COUNT(*) 的函数。若要查找由 GROUP BY 和 COUNT(*) 生成的汇总信息,请使用不带 BY 的 COMPUTE 子句。这些函数忽略空值。如果是用 COPPUT 子句指定的行聚合函数,则不允许它们使用 DISTINCT 关键字。当添加或平均整数数据时,即使列的数据类型为 smallint 或 tinyint,SQL Server 也将结果视为 int 值。有关返回添加数据或平均数据的类型的更多信息,请参见 SUM 和 AVG。说明  为减少在 ODBC 和 DB-Library 程序中溢出错误的可能性,请将平均或汇总结果的所有变量声明均作为数据类型 int。
    ( expression )表达式,如对其执行计算的列名。expression 必须出现在选择列表中,并且必须将其指定为与选择列表中的某个表达式完全一样。在 expression 内不能使用在选择列表中指定的列的别名。说明  在 COMPUTE 或 COMPUTE BY 子句中,不能指定 ntext、text 和 image 数据类型。
    BY expression在结果集内生成控制中断和分类汇总。expression 是 order_by_expression 在相关 ORDER BY 子句中的精确复本。一般情况下,这是列名或列的别名。可指定多个表达式。在 BY 后列出多个表达式可将一个组分成子组并在每个分组级别上应用聚合函数。如果使用 COMPUTE BY,则必须也使用 ORDER BY 子句。表达式必须与在 QRDER BY 后列出的子句相同或是其子集,并且必须按相同的序列。例如,如果 ORDER BY 子句是:ORDER BY a, b, c则 COMPUTE子句可以是下面的任意一个(或全部):COMPUTE BY a, b, c
    COMPUTE BY a, b
    COMPUTE BY a
      

  3.   


    insert #xinxi select '信息','','201','湖北'
    insert #xinxi select '信息','','202','湖南'
    insert #xinxi select '信息','','203','上海'
    insert #xinxi select '393','黄宇萍', '201', '湖北'
    insert #xinxi select '721', '黎柳芳', '201', '湖北'
    insert #xinxi select '233', '黎伟贵', '201', '湖北'
    insert #xinxi select '555', '田慧', '202', '湖南'
    insert #xinxi select '365', '朱惠伶', '202', '湖南'
    insert #xinxi select '698', '李音', '203', '上海'
    select * from #xinxi order by 省级代码,卡号