Oracle行转列的3种方法
测试表为A3 , 有5个字段:ID1, ID2, ID3, ID4, ID5
测试数据如下:
| ID1 | ID2 | ID3 | ID4 | ID5 |
| 1 | 2 | 3 | 4 | 5 |
| 11 | 22 | 33 | 44 | 55 |
| 111 | 222 | 333 | 444 | 555 |
结果如下:
| ID1 | 11 |
| ID2 | 22 |
| ID3 | 33 |
方法1:使用系统表
SELECT DECODE(COLUMN_NAME, COLUMN_NAME, COLUMN_NAME) NAME,
DECODE(COLUMN_NAME, 'ID1', ID1, 'ID2', ID2, 'ID3', ID3) VALUE
FROM USER_TAB_COLUMNS U, A3 T
WHERE U.TABLE_NAME = 'A3' AND T.ID5='55'
AND U.COLUMN_NAME IN ('ID1', 'ID2', 'ID3');
方法2:使用ROWNUM
SELECT DECODE(N, 1, 'ID1', 2, 'ID2', 3, 'ID3') AS NAME,
DECODE(N, 1, S.ID1, 2, S.ID2, 3, S.ID3) AS VALUE
FROM (SELECT T.* FROM A3 T WHERE T.ID5 = '55') S,
(SELECT ROWNUM N FROM DUAL CONNECT BY ROWNUM <= 3);
方法3:使用UNION ALL,最简单的方法
SELECT 'ID1' NAME, ID1 VALUE FROM A3 T WHERE T.ID5='55' UNION ALL
SELECT 'ID2' NAME, ID2 VALUE FROM A3 T WHERE T.ID5='55' UNION ALL
SELECT 'ID3' NAME, ID3 VALUE FROM A3 T WHERE T.ID5='55';
Oracle行转列的3种方法的更多相关文章
- sql语句实现行转列的3种方法实例
sql语句实现行转列的3种方法实例 一般在做数据统计的时候会用到行转列,假如要统计学生的成绩,数据库里查询出来的会是这样的,但这并不能达到想要的效果,所以要在查询的时候做一下处理,下面话不多说了,来一 ...
- Oracle 行转列pivot 、列转行unpivot 的Sql语句总结
这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_user select id||username str from ap ...
- oracle 行转列 分析函数
oracle 行转列 首先看一下源数据: 方法一:WM_CONCAT group by 这个方法没有问题. SELECT CODE_TS, WMSYS.WM_CONCAT(S_NUM + || ':' ...
- oracle rename数据文件的两种方法
oracle rename数据文件的两种方法 2012-12-11 20:44 10925人阅读 评论(0) 收藏 举报 分类: oracle(98) 版权声明:本文为博主原创文章,未经博主允许不 ...
- Oracle 数据库分页查询的三种方法
一.Oracle 数据库分页查询的三种方法 1.简介 不能对 rownum 使用 >(大于或等于 1 的数值).>=(大于 1 的数值).=(不等于 1 的数值),否则无结果.所以直接用 ...
- oracle 行转列~列转行(几种方法)
工作中,我们经常会碰到行转列的情况 这里我介绍几种简单的方法--行转列 1.oracle的pivot函数 原表 使用pivot函数: with temp as(select '四川省' nation ...
- Oracle多行记录合并的几种方法
今天正好遇到需要做这个功能,顺手搜了一下网络,把几种方法都列出来,方便以后参考. 1 什么是合并多行字符串(连接字符串)呢,例如: SQL> desc test; Name Type Nulla ...
- Oracle行转列、列转行的Sql语句总结
多行转字符串 这个比较简单,用||或concat函数可以实现 SQL Code 12 select concat(id,username) str from app_userselect i ...
- Oracle行转列、列转行的Sql语句总结(转)
多行转字符串 这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_userselect id||username str f ...
随机推荐
- 转载 Deep learning:三(Multivariance Linear Regression练习)
前言: 本文主要是来练习多变量线性回归问题(其实本文也就3个变量),参考资料见网页:http://openclassroom.stanford.edu/MainFolder/DocumentPage. ...
- 【转载】关于SetWindowOrgEx、SetViewportOrgEx、SetViewportExtEx 和SetWindowExtEx 详解
关于SetWindowOrgEx.SetViewportOrgEx.SetViewportExtEx 和SetWindowExtEx 详解 1. SetWindowOrgEx是设置窗口的原点坐标. ...
- 【Qt开发】修改源码文件的编码格式的小技巧 .
默认情况下,代码文件应该以utf-8的格式来存储的.而如果在代码文件的转移或者上传下载过程中,弄乱了文件的编码格式,一般会出现乱码的情况. 例如windows系统下,中文就很容易出现乱码,如下图,文件 ...
- J2SE基本数据结构
1.J2SE中的常用数据结构对象的继承关系如下图 Collection ........|--------List ........|..........|----------ArrayList .. ...
- mysql 查询 字段的类型
select column_name,data_type from information_schema.columnswhere table_name = '表名'
- 安卓布局修改基础常识篇之TextView属性
[天使]安卓布局修改基础常识篇之TextView属性 在修改布局xml文件时需要熟练掌握一些属性,以下是TextView也就是文本的属性:android:autoLink 是否自动链接网址或邮箱地址: ...
- mahout 查看kmeans结果的命令
$mahout seqdumper -i output/clusters-1/part-r-00000 直接在控制台上显示,要写入文件可以在后面加上-o <输出路径> mahout中的k ...
- iOS的基本图形绘制
绘图的步骤: 1.获取上下文 2.创建路径(描述路径) 3.把路径添加到上下文 4.渲染上下文 通常在- (void)drawRect:(CGRect)rect这个方法里面绘制图形 为什么要再draw ...
- jdk8 eclipse luna market crashed
THAT WORKS! Eclipse Luna starts normally when I first do the suggested: export SWT_GTK3=0 https://bu ...
- Android学习笔记之Intent(2)
打开网页 package com.jiahemeikang.helloandroid; import java.io.File; import com.jiahemikang.service.Echo ...