`

转一个:sql server 纵表转横表

 
阅读更多

演示如下:

1.建表:

create table tb
(
   Name    varchar(10) ,
   Subject varchar(10) ,
   Result  int
)

2.插入数据:
insert into tb(Name , Subject , Result) values('张三' , '语文' , 74)
insert into tb(Name , Subject , Result) values('张三' , '数学' , 83)
insert into tb(Name , Subject , Result) values('张三' , '物理' , 93)
insert into tb(Name , Subject , Result) values('李四' , '语文' , 74)
insert into tb(Name , Subject , Result) values('李四' , '数学' , 84)
insert into tb(Name , Subject , Result) values('李四' , '物理' , 94)

3.纵表转横表,静态方式:
select name 姓名,
  max(case subject when '语文' then result else 0 end) 语文,
  max(case subject when '数学' then result else 0 end) 数学,
  max(case subject when '物理' then result else 0 end) 物理
from tb
group by name
3.纵表转横表,动态方式:
declare @sql varchar(8000)
set @sql = 'select Name as ' + '姓名'
select @sql = @sql + ' , max(case Subject when ''' + Subject + ''' then Result else null end) [' + Subject + ']'
from (select distinct Subject from tb) as a
print(@sql)
set @sql = @sql + ' from tb group by name'
exec(@sql) 
--print(@sql)

分享到:
评论

相关推荐

    SQL SERVER数据库纵表转横表应用浅析.pdf

    SQL SERVER数据库纵表转横表应用浅析.pdf

    SQL Server纵表与横表相互转换的方法

    纵表转横表的SQL示例: SELECT Name , SUM(CASE WHEN Course = N'语文' THEN Grade ELSE 0 END) AS Chinese , SUM(CASE WHEN Course = N'数学' THEN Grade ELSE 0 END) AS Mathematics , SUM(CASE WHEN Course = N...

    SqlServer mssql 交叉查询,横表变纵表

    sql server 交叉查询, 查询结果交叉表,横表变纵表

    Sqlserver2000经典脚本

    介绍就不多说了,下边是部分目录,觉得有用的话就顶一个 C:. │ sqlserver2000.txt │ ├─第01章 │ 1.9.1 设置内存选项.sql │ 1.9.2(2) 使用文件及文件组.sql │ 1.9.2(3) 调整...

    sqlserver语句大全

    sqlserver语句大全(导入导出、纵转横等等)

    sqlserver经典脚本大全.zip

    任意两个时间之间的星期几的次数-横 任意两个时间之间的星期几的次数-纵 复杂年月处理 统计--交叉表+日期+优先 3.2 各种字符串分拆处理函数 3.3 各种字符串合并处理示例 3.4.1 分段截取函数 3.4.2 分段更新函数 ...

    经典SQL脚本大全

    │ 统计一个表中某个字符出现最多的字母.sql │ 非法字符串处理.sql │ ├─第04章 │ │ 4.1.5 在各种处理中应用排序规则的示例.sql │ │ 4.2.1 排序规则在拼音处理中的应用.sql │ │ 4.2.2 排序规则在全角与...

    企业报表横纵坐标转换的SQL实现功能

    实例1描述:要求将传统纵坐标通过SQL语句实现横纵转换; 实例2描述:根据不同的计件员工类型用SQL语句实现不同的补贴金额。 上述两个实例在平常的应用中非常实用,这两个例子是本人从事近六年在企业中应用最广泛的...

Global site tag (gtag.js) - Google Analytics