两种方式:
/*
实现行转列
a
name objec score
a EN 89
a CH 78
a HO 99
b EN 34
b CH 88
b HO 66
要求输出结果为:
name EN CH HO
a 89 78 99
b 34 88 66
*/
USE tempdb
IF (SELECT 1 FROM sys.sysobjects WHERE name ='t' AND type='u') is NOT NULL
DROP TABLE t
CREATE TABLE t
(
NAME CHAR(10),
objec CHAR(10),
score FLOAT
)
INSERT INTO t
VALUES('a','EN',89),('a','CH',78),('a','HO',99),('b','EN',34),('b','CH',88),('b','HO',66)
SELECT * FROM T
SELECT NAME ,MAX(CASE objec WHEN 'EN' THEN score ELSE 0 END ) EN,MAX(CASE objec WHEN 'CH' THEN score ELSE 0 END ) CH,MAX(CASE objec WHEN 'HO' THEN score ELSE 0 END ) HO
FROM t
GROUP BY NAME
--=======================================================================================================================================================
/*
实现行转列
a
name objec score
a EN 89
a CH 78
a HO 99
b EN 34
b CH 88
b HO 66
要求输出结果为:
name objec totalsorce
a EN,CH,HO 266
b EN,CH,HO 188
*/
USE tempdb
IF (SELECT 1 FROM sys.sysobjects WHERE name ='t' AND type='u') is NOT NULL
DROP TABLE t
CREATE TABLE t
(
NAME CHAR(10),
objec CHAR(10),
score FLOAT
)
INSERT INTO t
VALUES('a','EN',89),('a','CH',78),('a','HO',99),('b','EN',34),('b','CH',88),('b','HO',66)
SELECT * FROM T
--为了去除objec中的最后一个逗号,插入一个临时表,并使用substring处理
SELECT name ,(SELECT LTRIM(RTRIM(objec))+',' FROM T WHERE objec=t.objec FOR XML PATH('')) objec,SUM(temp.score) totalscroe INTO #tmp
FROM T temp
GROUP BY name
SELECT NAME ,SUBSTRING(objec,0,LEN(objec)-1) objec ,totalscroe
FROM #tmp
分享到:
相关推荐
sql 行转列 与列转行,oracle ,msssql等,详细数据库操作方法,各种例子,欢迎大家学习。、~
Sql语句实现表的行列转换,行转列,列转行
sql列转行以及行转列的通用存储过程!mssqlserver版本!
DB2 SQL 通过函数(CONCAT/POSSTR/LOCATE)实现行转列,列转行 可以按照标点把多列转换为一行,多行转换为一列
精典的SQL语句。行转列,列转行的语句精典的SQL语句。行转列,列转行的语句
sql server 实现行转列、列名转行
sql行转列_列转行问题.
在c#后台实现 行转列的显示功能,这样就是可以不借助sql数据库的查询分析器功能也可以实现行转列功能的实现了
长数据宽数据转换,pandas 一列拆分多列,pandas pivot——table使用,pandas.melt 使用
oracle行转列_列转行,实例加解析,自己测试没问题。免费分享了~
mysql行转列(将同一列下的不同内容的几行数据,转换成几列显示)、列转行、行列汇总、合并显示
SqlServer如何进行行转列和列转行方法
Mysql 行转列,列转行 SQL语句和示例表结构SQL Mysql 行转列,列转行 SQL语句和示例表结构SQL
有case when方式和2005之后的内置pivot和unpivot方法来实现,行列互转,可以分为静态互转,动态互转。
NULL 博文链接:https://x125858805.iteye.com/blog/2273503
列转行行转列
SQL行专列列转行的存储过程 很实用的 SQL行专列列转行的存储过程 很实用的
access行转列,可以行转列和列转行,非常实用。
kettle etl 行转列 ;讲解清楚,用列经过测试能通俗易懂讲解这个知识点
SQL中如何实现行转列,列转行的操作.这里的例子保证让你豁然开朗!