sql 查询出一列内容,如何让它成一行显示。

sql 查询出一列内容,如何让它成一行显示。,第1张

进行行转列下面是相关语法

PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现

PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P

注意:PIVOT、UNPIVOT是SQL Server 2005 的语法,使用需修改数据库兼容级别(在数据库属性->选项->兼容级别改为 90 )

SQL2008 中可以直接使用

完整语法:

table_source

PIVOT(

聚合函数(value_column)

FOR pivot_column

IN(<column_list>)

)

View Code

UNPIVOT 用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现

完整语法:

table_source

UNPIVOT(

value_column

FOR pivot_column

IN(<column_list>)

)

SELECT rq,

SUM(CASE WHEN shengfu='胜' THEN 1 ELSE 0 END) AS '胜',

SUM(CASE WHEN shengfu='负' THEN 1 ELSE 0 END) AS '负'

FROM 表名

GROUP BY rq;

/学生表:Member

字段名称 数据类型 说明

MID Char(10) 学生号,主键

MName Char(50) 姓名

课程表Class:

字段名称 数据类型 说明

FID Char(10) 课程,主键

FName Char(50) 课程名

成绩表:Score

字段名称 数据类型 说明

SID int 自动编号,主键,成绩记录号

FID Char(10) 课程号,外键

MID Char(10) 学生号,外键

Score int 成绩/

create table member(mid varchar(10) primary key,mname varchar(50))

create table class(fid varchar(10) primary key,fname varchar(50))

create table score(sid int primary key,fid varchar(10),mid varchar(10),score int)

go

insert into member values ('1001','张三')

insert into member values ('1002','李四')

insert into class values ('A1','数学')

insert into class values ('A2','化学')

insert into class values ('A3','政治')

insert into class values ('A4','历史')

insert into class values ('A5','语文')

insert into class values ('A6','物理')

insert into score values (1,'A1','1001',80)

insert into score values (2,'A1','1002',85)

insert into score values (3,'A2','1001',84)

insert into score values (4,'A4','1002',90)

go

declare @sql varchar(8000)

select @sql='select amname as 学生姓名'

select @sql=@sql+',sum(case cfname when '''+fname+''' then bscore else null end )as '+fname from class

select @sql=@sql+' from member a left join score b on amid=bmid left join class c on bfid=cfid group by amname'

print @sql

exec (@sql)

看看这个吧,以前我给他们写的

以上就是关于sql 查询出一列内容,如何让它成一行显示。全部的内容,包括:sql 查询出一列内容,如何让它成一行显示。、求一句mysql语句,不知道是不是用到行转列、SQL题目,行转列, 求高手解答,看清楚表中数据再解答等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10158718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存