SQL小技巧系列 --- 行转列合并
首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成一行,接下来上例子,看看这个神奇的函数如何应用
准备测试数据
SQL> create table test(id number,name varchar2(20));
SQL> insert into test values(1,'a');
SQL> insert into test values(1,'b');
SQL> insert into test values(1,'c');
SQL> insert into test values(2,'d');
SQL> insert into test values(2,'e');
SQL> commit;
效果1 : 行转列
SQL> select wm_concat(name) from test;
WM_CONCAT(NAME)
-------------------------------------------------------------------------
a,b,c,d,e
效果2: 把结果里的逗号替换成"|"
SQL> select replace(wm_concat(name),',','|') from test;
REPLACE(WM_CONCAT(NAME),',','|')
-----------------------------------------------------------------------
a|b|c|d|e
效果3:按ID分组合并name
SQL> select id,wm_concat(name) name from test group by id;
ID NAME
---------- ------------------------------
1 a,b,c
2 d,e
懒人扩展用法:
案例:我要写一个视图,类似"create or replace view as select 字段1,...字段50 from tablename" ,基表有50多个字段,要是靠手工写太麻烦了,有没有什么简便的方法? 当然有了,看我如果应用wm_concat来让这个需求变简单
SQL> select 'create or replace view as select '|| wm_concat(column_name) || ' from dept'from user_tab_columns where table_name='DEPT';
'CREATEORREPLACEVIEWASSELECT'||WM_CONCAT(COLUMN_NAME)||'FROMDEPT'
--------------------------------------------------------------------------------
create or replace view as select DEPTNO,DNAME,LOC from dept
转载于:https://blog.51cto.com/laoyao999/646870
SQL小技巧系列 --- 行转列合并相关推荐
- excel 2007 vba与宏完全剖析_Excel宏VBA小技巧系列 | 分段加合
写在前面的话 知识产权算是一个盛产数据的行业.专利啊商标啊著作啊,都有著录项目.我们常说的专利分析.产业导航.企业导航.产业预警.竞争情报.技术综述.知识产权评议等等,常规操作之一就要先处理著录项目 ...
- Mysql 多行多列合并并排序(看到最后) GROUP_CONCAT()
项目需要合并列,想用Mybatis查出来,Java遍历整合.想了想太耗时,不如一条sql来的痛快. 多行多列合并排序:实现逻辑 ,先合并列,并排序,然后合并所有行. group_concat()函数 ...
- MySQL 常见索引的使用场景与区别(SQL小技巧)
作者:贺禧年_码农 blog.csdn.net/weixin_46163590/article/details/106047978 一.MySQL索引类型: MySql常见索引类型有:主键索引.唯一索 ...
- 每日一个 ChatGPT 使用小技巧系列之2 - 用 ChatGPT 研读 SAP ABAP BAPI 的实现源代码
本系列之前的文章: 与其整天担心 AI 会取代程序员,不如先让 AI 帮助自己变得更强大 每日一个 ChatGPT 使用小技巧系列之1 - 给出提纲或者素材,让 ChatGPT 帮你写作 正好昨天有朋 ...
- mysql行转列sql函数_sql动态行转列的两种方法
第一种方法: 代码如下: select *from ( select Url,case when Month=01 then '1月' when Month=02 then '2月' when ...
- GRIDVIEW多行多列合并单元格(合并列)
GitHub项目地址:https://github.com/mingceng/merge-gridviewcell 去年的时候,我写了两篇文章: GridView多行多列合并单元格(完整代码和例子) ...
- EXCEL常用小技巧系列01----排名
EXCEL常用小技巧系列01----排名 在工作中,时常需要对数据进行各种方式的排名,以下总结几种常用的排名方式: 一:有相同数字时,显示同一排名且下一排名不连续 公式:=SUMPRODUCT((数据 ...
- DLA SQL技巧:行、列转换和JSON数据列展开
1. 简介 在数据库SQL处理中,常常有行转列(Pivot)和列转行(Unpivot)的数据处理需求.本文以示例说明在Data Lake Analytics中,如何使用SQL的一些技巧,达到行转列(P ...
- sql left join 去重_混入了一些奇怪的东西?SQL小技巧之数据去重
大家好,欢迎踏入野生程序猿的生存之道,我是你们的老朋友大猿猿! 今天聊聊数据库里怎样删除重复数据. "重复"的定义 首先咱先明确一下什么叫重复数据,比如你有个表,好比说学生表吧,这 ...
最新文章
- PHP空指针,PHP 5.3.7之前版本空指针引用拒绝服务漏洞
- instance-based与model-based 区别
- UE3 ExampleGame Android版无法运行解决方案
- 计算机网络-思维导图(5)传输层
- 微信小程序云开发如何--实现简单的增删改查
- 使用腾讯云发送短信API接口实现(完整流程)
- java web逻辑删除代码_MyBatis-Plus之逻辑删除的实现
- 信息学奥赛一本通(1213:八皇后问题)
- 【云计算平台】VMware搭建Centos 7虚拟机
- 像MIUI一样做Zabbix二次开发(5)——那些坑和优化方向
- engine.POST()处理POST请求
- OLTP在线事务处理
- python程序设计题库-知到智慧树_Python程序设计基础_完整免费答案
- django微信公众号开发入门详细指南
- 《鸟哥的Linux私房菜》Chapter6 20180806~20180810
- 整型与指针的相互转换(int-int*,long-long*)
- 2010一次意想不到的环球飞行
- oracle基础|oracle多表查询用法|什么是等值连接(inner join)|什么是不等值连接(between)|什么是左连接(left join)|什么是右连接(right join)
- 微信小程序上传图片至服务器Springboot接收格式的问题
- 《数据结构与算法》(十一)- 树、森林与二叉树的转换及哈夫曼树详解