数据类型

  Oracle数据库。

行转列

  表名:CM_IDVALUE ,原始数据:

ID TEXTVALUE TYPE
12346 A,B,C,D String
12346 1111111 NUMBER

方案一

with a as
(select t.ID,t.TYPE,t.TEXTVALUE from CM_IDVALUE t where t.TYPE='String'),
b as
(select t.ID,t.TYPE,t.TEXTVALUE from CM_IDVALUE t where t.TYPE='NUMBER')
select t1.ID,t1.TEXTVALUE String,t2.ID,t2.TEXTVALUE NUMBER from
a  t1 left outer join b t2  on t1.ID = t2.ID
where t1.ID='12346'

方案二

select *
from (select ID,TEXTVALUE,TYPE from CM_IDVALUE)pivot (sum(TEXTVALUE) for TYPE in('String'STRING,'NUMBER'NUMBER ));/*注释:若sum()函数报错,则使用max()函数替换。*/

效果:

ID STRING NUMBER
12346 A,B,C,D 1111111

列转行

  表名:CM_IDVALUE ,原始数据:

ID TEXTVALUE
12346 A,B,C,D

可用union all来实现,将ID和TEXTVALUE两列转成多行显示,SQL语句如下:

select to_char(id) LINE1 from CM_IDVALUE where id='12346'
union all
select TEXTVALUE from CM_IDVALUE where id='12346';

效果:

LINE1
12346
A,B,C,D

其它

单列转多列

  表名:CM_IDVALUE ,原始数据:

ID TEXTVALUE
12346 A,B,C,D

根据分号将TEXTVALUE 列拆分成LINE1、LINE2、LINE3、LINE4列显示,SQL语句如下:

SELECT T.ID,
REGEXP_SUBSTR(T.TEXTVALUE,'[^,]+',1) AS LINE1,
REGEXP_SUBSTR(T.TEXTVALUE,'[^,]+',3) AS LINE2,
REGEXP_SUBSTR(T.TEXTVALUE,'[^,]+',5) AS LINE3,
REGEXP_SUBSTR(T.TEXTVALUE,'[^,]+',7) AS LINE4
FROM CM_IDVALUE T WHERE T.ID='12346';

效果:

ID LINE1 LINE2 LINE3 LINE4
12346 A B C D

多列转单列

  表名:CM_IDVALUE ,原始数据:

ID LINE1 LINE2 LINE3 LINE4
12346 A B C D

将上述LINE1、LINE2、LINE3、LINE4列合并成TEXTVALUE 列,SQL语句如下:

SELECT ID,LINE1||','||LINE2||','||LINE3||','||LINE4  as TEXTVALUE
FROM  CM_IDVALUE T
WHERE T.ID='12346';

效果:

ID TEXTVALUE
12346 A,B,C,D

行列转换的SQL语句相关推荐

  1. C# 怎么把集合转换成数据库添加语句,把类转换成sql语句

    public string GetInsertStr<T>(List<T> obj,string tableName) {string str = string.Format( ...

  2. 将mysql语句转换为sql_数据库-转换sql语句

    文章描述:主要说明转换成SQL语句的过程.----必要信息(数据库名,表名,条件)转换成SQL语句 一些界面上数据增删改查的操作往往只需要输入一数据库名,表名,加条件就可以进行数据查询了,在这背后是怎 ...

  3. SQL行列转换6种方法

    在进行报表开发时,很多时候会遇到行列转换操作,很对开发人员针对于SQL级别行列转换操作一直不甚理解,今天正好抽空对其进行了一些简单的总结.这里主要列举3种可以实现SQL行列转换的方法,包括通用SQL解 ...

  4. 笔试 -- SQL语句之横竖表转换

    文章目录 一.表结构 二.竖表转横表 1-1 case when then 1-2 pivot 三.横表转竖表 1-1 UNION ALL 1-2 unpivot 最近笔试中有 [将竖表转换为横表]的 ...

  5. MS-SQL Server 基础类 - SQL语句

      网址收藏夹 免费申请! 首页 |收藏夹 | 笑话 | 贴吧 | 交友 | 留言 | 软件 | 超市 | 网页特效 | 酷站导航 | 论坛 新闻 | 同学录 | 图片 | 跑商 | 动画 | 音乐 ...

  6. 基础类 - SQL语句

    基础类 - SQL语句 转载请标明出处: http://blog.csdn.net/hz/archive/2006/03/01/613376.asp 本文来自 CSDN 博客.x sql server ...

  7. 如何将SQL语句进行自动翻译

    如何将SQL语句进行自动翻译 这里我们利用SQL-to-Text Generation with Graph-to-Sequence Model一文, 给大家简单介绍一下如何对SQL语句进行自动翻译 ...

  8. Oracle经典sql语句总结@sql-plus重点函数串讲与sql语句案例@中文排序详讲).doc

    1.经典的select sql语句 //注意:包含空值的数学表达式求出的结果为空值 SQL> select sal+comm from emp; //连接员工编号与员工姓名这两个字段 SQL&g ...

  9. SQL语句行列转换两种方法 case ...when 和pivot函数应用

    2019独角兽企业重金招聘Python工程师标准>>> SQL语句行列转换两种方法 case ...when 和pivot函数应用SQL语句行列转换两种方法 case ...when ...

  10. 一些sql 语句(行列转换等)

    1. 行列转换--普通 假设有张学生成绩表(CJ)如下 Name Subject Result 张三 语文 80 张三 数学 90 张三 物理 85 李四 语文 85 李四 数学 92 李四 物理 8 ...

最新文章

  1. 我的 FPGA 学习历程(13)—— 电子钟项目
  2. socket未读消息 如何设计_如何设计IM系统的消息架构?
  3. 【ObjectC—浅copy和深copy】
  4. 2022我会成为高手吗
  5. php soap 两个版本_Ceontos 安装php7以上的版本
  6. 略论bs架构设计的几种模式
  7. Spring mvc项目导出jar包无法识别正常映射问题
  8. cpu矿工cpuminer-multi编译与使用
  9. FANUC NC GUIDE PRO 17.1虚拟机(XP系统)
  10. [web开发] Vue+Spring Boot 上海大学预约系统开发记录
  11. CCbot是什么梗?
  12. 基于Java spring的实验室设备管理系统的设计与实现
  13. 地图学类毕业论文文献包含哪些?
  14. linux 快照工具,技术预览:CentOS 7中利用Snapper GUI管理系统快照
  15. Js 方法函数记录笔记
  16. DeepMind 最新发文:AlphaZero 的黑箱打开了
  17. MacOS 软件版本更新Monterey12.1版之后L2TP无法正常访问内网服务解决方案
  18. UIKeyboard 键盘
  19. 老虎证券 2018 java编程笔试题
  20. 渗透攻防必备工具(基础篇,收藏起来)

热门文章

  1. 天猫搜索前端架构演进之路
  2. pe擦除服务器硬盘,如何使用老毛桃winpe的分区助手安全擦除移动硬盘或本地硬盘数据?...
  3. AEJoy ——表达式代码列表和示例(四)【代码详解】
  4. 使用代码控制小米智能插座
  5. opencv配置环境吐血经验
  6. 网页设计html轮播代码,20行js代码实现网页轮播图效果
  7. 路由型交换机建立VSF及删除VSF
  8. 步进电机驱动器的作用以及其调速方法
  9. 企业微信接口上传临时素材
  10. mfc入门程序之简单的计算器