欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

[SQLServer]数据库行列互换

程序员文章站 2024-01-12 16:13:28
...

面试的时候遇到的数据库SQL问题,没写过,然后研究了一下,现将结果记录下来,方便以后查询。 题目1:将表tbltest1的行列互换 表结构: student kemu fenshu student1 语文 80 student1 数学 90 student1 英语 85 student2 语文 85 student2 数学 92 student

面试的时候遇到的数据库SQL问题,没写过,然后研究了一下,现将结果记录下来,方便以后查询。

题目1:将表tbltest1的行列互换

表结构:

student kemu fenshu
student1 语文 80
student1 数学 90
student1 英语 85
student2 语文 85
student2 数学 92
student2 英语 82

变成:
student 语文 数学 英语
student1 80 90 85
student2 85 92 82

SQLserver的sql语句:

declare @sql varchar(4000)
set @sql = 'select student'
select @sql = @sql + ',sum(case kemu when '''+ kemu +''' then fenshu else 0 end)['+ kemu+']'
from (select distinct kemu from tbltest1) as a
set @sql = @sql + ' from tbltest1 group by student'
exec(@sql)