行转列或列转行写法
来源:互联网 发布:手机开淘宝店流程图 编辑:程序博客网 时间:2024/06/06 01:28
两种方式:
- /*
- 实现行转列
- 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 行转列、列转行写法 面试用
- SQL 行转列,列转行 SQL2000/2005分别写法
- 列转行、行转列
- 行转列 -列转行
- SQL行转列 列转行
- SQL行转列,列转行
- 行转列 列转行
- 行转列.列转行 oracle
- oracle 行转列,列转行
- 【ORACLE】行转列,列转行
- SQL 列转行/行转列
- oracle 行转列 列转行
- oracle 行转列,列转行
- 行转列 VS 列转行
- 列转行--行转列
- oracle 行转列 列转行
- 教你如何迅速秒杀掉:99%的海量数据处理面试题
- ASP.NET - Exception from HRESULT: 0x80070057 (E_INVALIDARG)
- 整合Ucenter同步注册,登录,退出
- 360招聘
- 16个HTML5 框架、模板以及生成工具
- 行转列或列转行写法
- 3种方法让android手机通过电脑上网
- 黑马程序员 Java 银行业务调度系统
- java 同步与异步的区别
- datastage8.1 安装windows 引擎脚本错误问题
- 优秀设计师应当知道的20大UI设计原则
- 房价每平米80万”是天方夜谭么
- 解决tomcat6.0.33 配置SSL时报“No Certificate file specified or invalid file format”异常
- 黑马程序员--基本数据类型包装类