这里行转列的基本思想就是使用max,因为其他列下面都是NULL,所以可以Max最后就只能得到有值的这行

普通的查询:

SELECT

icd ,

case when

(ROW_NUMBER() OVER(PARTITION BY INNER_CD ORDER BY SLIDE_SEQ )) = then SLIDE_QTY END as SLIDE_QTY1,

case when

(ROW_NUMBER() OVER(PARTITION BY INNER_CD ORDER BY SLIDE_SEQ )) = then SLIDE_S_UNIT_PRICE END as SLIDE_S_UNIT_PRICE1,

case when

(ROW_NUMBER() OVER(PARTITION BY INNER_CD ORDER BY SLIDE_SEQ )) = then SLIDE_QTY END as SLIDE_QTY2,

case when

(ROW_NUMBER() OVER(PARTITION BY INNER_CD ORDER BY SLIDE_SEQ )) = then SLIDE_QTY END as SLIDE_QTY3

FROM

"temp"."user" mm

WHERE

mm.icd = 'ADDM01-20160612-1-100002-001'

得到的数据是:

使用max后:

SELECT

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY1,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY2,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY3,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY4,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY5,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY6,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY7,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY8,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY9,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY10

FROM

user

WHERE

anken_id = 'ADDM01-20160612-1-100002-001'

得到的结果:

然后可以通过子查询进行组合

SELECT * from

m_product INNER JOIN

( SELECT

anken_id,

icd,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY1,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY2,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY3,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY4,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY5,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY6,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY7,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY8,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY9,

MAX( case when SLIDE_SEQ = THEN SLIDE_QTY END )as SLIDE_QTY10

FROM

user

WHERE

user.anken_id = 'ADDM01-20160612-1-100002-001'

GROUP BY user.inner_cd,user.anken_id) t1 on m_product.anken_id = t1.anken_id

where t1.anken_id = 'ADDM01-20160612-1-100002-001'

就可以得到富含行转列数据的。

列转行的基本思路就是通过制定一个共同的字段,然后将查询来的数据一行一行的累加起来。

SELECT

aa,

bb,

c_1 AS cCount

FROM

TEMP .AAAA

WHERE

TEMP .AAAA.Id = 'ADDM01201606120001'

UNION ALL

SELECT

aa,

bb,

c_2 AS cCount

FROM

TEMP .AAAA

WHERE

TEMP .AAAA.Id = 'ADDM01201606120001'

UNION ALL

SELECT

aa,

bb,

c_3 AS cCount

FROM

TEMP .AAAA

WHERE

TEMP .AAAA.Id = 'ADDM01201606120001'

SQL Server 行转列,列转行。多行转成一列

一.多行转成一列(并以","隔开) 表名:A 表数据: 想要的查询结果: 查询语句: SELECT name , value = ( STUFF(( SELECT ',' + va ...

postgresql行转列

问:怎么分页&&按条件&&按顺序&&姓名不重复查出数据? 答:其实就是行转列,那么,postgresql怎么进行转列呢,百度了下,大概有三种写法 写法1 ...

SQL进阶-行转列&列转行

一.行转列 1.建表 CREATE TABLE score( student_id ) NOT NULL COMMENT '学生编号' DEFAULT '', student_name ) NOT N ...

Sql server 中将数据行转列列转行(一)

在做一些数据分析与数据展示时,经常会遇到行转列,列转行的需求,今天就来总结下: 在开始之前,先来创建一个临时表,并且写入一些测试数据: /* 第一步:创建临时表结构 */ CREATE TABLE # ...

Sql server 中将数据行转列列转行(二)

老规矩,先弄一波测试数据,数据填充代码没有什么意义,先折叠起来: /* 第一步:创建临时表结构 */ CREATE TABLE #Student --创建临时表 ( StuName ), --学生名称 ...

Greenplum 行存、列存,堆表、AO表的原理和选择

转载自: https://github.com/digoal/blog/blob/master/201708/20170818_02.md?spm=a2c4e.11153940.blogcont179 ...

MYSQL 多行转多列

mysql 行变列(多行变成一行/多行合并成一行/多行合并成多列/合并行),我觉得这都是一个意思 数据库结构如图: 而我想让同一个人的不同成绩变成此人在这一行不同列上显示出来,此时分为2中展现: 第一 ...

Oracle 多行变一列的方法

多行变一列的方法有很多,觉得这个第一眼看懂了当时就用的这个办法. 情况是这样的.以下数据前几列是一样的,需要把VAT_VALUE_CHAR 的值放在同一行上. SELECT * FROM ps_vat ...

用VBA计算WPS 表格ET EXCEL中的行数和列数的多重方法

用VBA计算WPS 表格ET EXCEL中的行数和列数 每种方法中上面的是Excel的行数,下面的是Excel的列数. 方法1: ActiveSheet.UsedRange.Rows.Count Ac ...

随机推荐

xcode6 使用MJRefresh,Too many arguments to function call, expected 0, have *

转载自:  http://blog.csdn.net/wsjshx/article/details/40743291 将XCode升级到6后,报Too many arguments to functi ...

URLError 异常处理

3 URLError 首先解释下 URLError 可能产生的原因: 网络无连接,即本机无法上网 连接不到特定的服务器 服务器不存在 在代码中,我们需要用 try-except 语句来包围并捕获相应的 ...

Js之Dom学习-三种获取页面元素的方式、事件、innerText和innerHTML的异同

一.三种获取页面元素的方式: getElementById:通过id来获取

/network/admin/listener.ora",添加 (SID_DESC =         (GLOBAL_DB ...

获取或设置checkbox radio select的值

单选: 获取值:$("input[name='rdo']:checked").val(); 设置值:$("input[name='rdo'][value='3']&quo ...

C链表之创建简单静态链表

C代码: #include #include #include //创建简单静态链表 typedef st ...

3.HttpSession

1 HttpSession概述 1.1 什么是HttpSesssion javax.servlet.http.HttpSession接口表示一个会话,我们可以把一个会话内需要共享的数据保存到HttSe ...

Beta阶段冲刺二

Beta冲刺二 1.团队TSP 团队任务 预估时间 实际时间 完成日期 对数据库的最终完善 120 150 12.2 对学生注册功能的完善--新增触发器 150 140 11.29 对教师注册功能的完 ...

Linux: yum 命令说明

yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性 ...

liunx下在线升级python到2.7版本

因开发nodejs中间用到了node-gyp模块,此模块需2.X最新版本,所以升级服务器python版本 亲测成功 python 升级步骤#1.which python 查询python的位置/usr ...

matlab 列转行,postgresql 行转列,列转行后加入到一个整体数据相关推荐

  1. C语言关系 是行还是列,C语言行优先和列优先的问题深入分析

    C语言行优先和列优先的问题深入分析 摘要 本文主要探讨的是"行优先"原则和"列优先"原则的问题. 1. 背景 首先了解"行优先"和" ...

  2. c语言为什么先存储行后存储列,C语言行优先和列优先的问题深入分析

    C语言行优先和列优先的问题深入分析 摘要 本文主要探讨的是"行优先"原则和"列优先"原则的问题. 1. 背景 首先了解"行优先"和" ...

  3. bootstraptable列宽自适应内容_多列列表框行高和列宽的自适应调整

    LabVIEW:2015 在使用多列列表框(Multicolumn Listbox)时,有时不同列显示的内容长度不一致,为了显示更加美观,并节省界面显示空间,需要实现多列列表框的行高和列宽的自适应调整 ...

  4. pandas DataFrame增加一行、一列、多行、多列

    # 增加一行或者一列 import numpy as np import pandas as pd# 增加一行 df = pd.DataFrame(np.random.rand(4,5), colum ...

  5. matlab获取矩阵的行数与列数

    matlab里面与其他高级语言里面获取数据的长度length方法不一样,matlab里面通过size(矩阵变量)返回一个[行数m,列数n] 比如一个m*n的矩阵A 通过size(A)可以得到[m  n ...

  6. oracle 动态sql列转行_oracle行转列(动态行转不定列)

    ---------------------------------------------------------------行转列的存储过程 CREATE OR REPLACE PROCEDURE ...

  7. pandas读取csv数据、参数指定作为行索引的数据列索引列表形成复合(多层)行索引、使用set_index函数把数据列转化为行索引(keys参数指定需要被转化的数据列)

    pandas使用read_csv函数读取csv数据.index_col参数指定作为行索引的数据列索引列表形成复合(多层)行索引.header参数指定作为

  8. oracle不定列,oracle行转列(动态行转不定列)

    2019独角兽企业重金招聘Python工程师标准>>> --------------------------------------------------------------- ...

  9. excel中隐藏列,隐藏行,增加列,取消隐藏,调节列宽

    隐藏列:ctrl+shift+右键 然后点击右键取消隐藏 隐藏行:ctrl+shift+下键盘,然后点击右键取消隐藏 调节列宽的时候要注意表格全部选中以后要在首行点击右键. 行就好操作了 加列的快捷键 ...

最新文章

  1. linux 配置计算机和用户免密在本地计算机执行远程命令 hosts.equiv $HOME/.rhosts 简介
  2. Visual Studio 2017 15.5预览版添加对F# Core及Standard的支持
  3. RedMine项目管理系统邮件推送设置(Windows环境)
  4. 看视频学编程之最最基础的基础(1)
  5. mysql table fetching_MySQL死锁分析一例
  6. ViewStub使用
  7. 联想y7000 Linux显卡驱动,联想Y7000安装ubuntu1804.6双系统和显卡驱动(一)
  8. mmsegmentation自定义数据集
  9. 设计模式(博客园精化集)
  10. word中更新目录中只更新页码和更新整个目录的区别
  11. 动态规划-打气球的最大分数(python实现)
  12. 剑指offer题目记录
  13. linux系统下如何修改开机图片,Ubuntu Kylin下修改登录背景,用户头像,开机动画及自动更换壁纸...
  14. markdown符号表情 readme符号表情 github Profile自述文件用
  15. XPosed暴力列举Package下所有的方法调用 + 列举类所欲详细信息
  16. 站群系统-常用的站群软件系统推荐
  17. bzoj 5041: LWD的降临
  18. Unity animiator 学习记录【2D角色移动】
  19. wordpress创建_如何在WordPress中创建子页面
  20. java中scanner类的常见方法用法总结

热门文章

  1. CodeBlock快捷键
  2. 关于前端spa项目seo优化改造方案(预渲染,ssr,nuxt比较)
  3. innerHTML与outerHTML 的区别?
  4. 获取本机ip和端口号
  5. 圆形标定板的图像校正
  6. 常用算法的计算复杂度
  7. Java导出自定义Excel表格,一套组合拳解决
  8. 鉴智机器人:以视觉3D理解为核心的下一代自动驾驶系统
  9. 红队内网渗透神器--CobaltStrike安装教程
  10. 操作系统面试、复试问答题