首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Oracle转行函数vm_concat使用

一、业务场景 今天需要实现一个table,有一的效果是:用户姓名A(账号a),用户姓名B(账号b)…这种格式。这就想到oracle转行函数vm_concat。...t_step_define sd on fs.step_id = sd.step_id group by sd.step_name 查询出来,是用,分隔的数据,实现转行显示...二、vm_concat函数补充 想通过id分组,可以用这样的sql: select vm_concat(a) from A group by id 不想用默认的逗号分隔,可以用SQL: ps:下面sql...是替换默认的逗号,用’|'符号 select replace(vm_concat(a),',''|') from A group by id oracle11用vm_concat导致查询缓慢 ps:在...oracle11使用会导致查询缓慢,是因为查询出来的都是clob大字段,可以用SQL,用to_char关键字会快点,不过建议还是除非业务需要,不然速度要求高的场景不要使用 select to_char(

5.8K40

Oracle转行函数LISTAGG() WITHIN GROUP ()的使用方法

前言:最近在写一些比较复杂的SQL,是一些统计分析类的,动不动就三四百行,也是首次写那么长的SQL,有用到一些奇形怪状的SQL函数,在这里结合网上的例子做一些笔记,以后用到不记得用法可以翻出来看!...1.基础用法:LISTAGG(XXX,XXX) WITHIN GROUP( ORDER BY XXX),就像聚合函数一样,通过Group by语句,把每个Group的一个字段,拼接起来 LISTAGG(...)其实可以把它当作SUM()函数使用或者理解 (1)示例代码: WITH TEMP AS( SELECT 'CHINA' NATION ,'GUANGZHOU' CITY FROM DUAL...运行结果: (2)示例代码: 查询部门为20的员工列表:SELECT t.DEPTNO,t.ENAME FROM SCOTT.EMP t where t.DEPTNO = '20'; 运行结果: 使用...在不使用Group by语句时候,也可以使用LISTAGG函数: WITH TEMP AS( SELECT 500 POPULATION, 'CHINA' NATION ,'GUANGZHOU' CITY

1.6K10
您找到你想要的搜索结果了吗?
是的
没有找到

巧用SQLoracle plsql split函数

Java程序员通用的做法是在service层将接收的"1001,1002,1003"拆分(使用java split函数),然后封装List,将List传递给DAO,再传递给ORM持久层的xml调用sql...解决方案 本文要做的就是单句SQL实现该功能。 先分析一下,该业务有两个关键点。 一是字符串拼接,oracle(11.2)提供了listagg函数已经实现了该功能,我们直接使用就可以。...二是字符串拆分,oracle没有实现该功能,但是java提供了split函数实现了字符串拆分功能。 我们可以参考java的split函数写一个oracle版split函数。...,和listagg函数联合使用,需要构建两张表。...与listagg函数联合查询: ? 注意:listagg是oracle 11.2版本的新功能。 至此,便简单实现了oracle的字符拆分与拼接。

2K60

oracle基础|oracle函数使用|oracle单行函数(字符函数、日期函数、数字函数、转换函数)的使用

目录 一、 前言 二、什么是函数 1、哑表dual 2、字符函数 3、数字函数 4、日期函数 5、类型转换函数 6、千年虫: ---- 一、 前言 前面我们学了一些简单的用法,今天要学习oracl函数使用...,函数oracle非常重要的功能,如果将函数学会了,那么基本上在项目的一些增删改查功能,就可以很轻松的上手了,所以这篇文章一定要认真的看 二、什么是函数 这里的函数相当于java中写好的一些方法,有名字...通常用在select语句中,作为查询的目标表结构,oracle保证dual里面永远只有一条记录。...select length(last_name) from s_emp; nvl 替换中为null的值 在前面的章节已经使用过了...数据库中表示一个日期数据的几种方式 1.sysdate 2.oracle默认的日期格式 例如:'25-MAY-95' 3.to_date函数转换

7.1K10

Oracle使用SQL分析锁

在数据库中第一次执行任何与锁定有关的SQL脚本之前,都需要首先运行catblock.sql脚本,该脚本位于$Oracle_HOME/rdbms/admin目录下。...Oracle提供一个名为utllockt.sql的脚本,它会给出一个树形结构的锁等待图,显示持有影响其他会话的锁的会话。使用此脚本,可以看出一个会话正在等待什么锁,哪个会话持有这些锁。...该脚本位于$ORACLE_HOME/rdbms/admin目录下。...下面是执行utllockt.sql脚本的一个示例: SQL> @$ORACLE_HOME/rdbmsa/admin/utllockt.sql Waiting session Type Mode requested...虽然会话682持有一个锁,但在锁信息中并未显示任何信息(None),因为它不等待任何锁。而会话363显示它请求一个共享(S)锁,并且正等待会话682释放表行上的独占(X)锁。

35620

Oracle SQL*Loader 使用简介

SQL*Loader 使用简介,欢迎点击上方蓝字“JiekeXu DBA之路”关注我的公众号,标星或置顶,更多干货第一时间到达!...前面一文简单介绍了 Oracle 大数据量导出工具——sqluldr2 的安装与使用,sqluldr2 的诞生主要是用于将大批量的 Oracle 数据快速导出成 CSV/Text 文本格式,方便导入到其他数据库中...,如今国产化进行的如火如荼,这个工具也是在国产数据库迁移中使用比较广泛的工具,值得大家去学习与使用,今天要说的是 Oracle 数据库自带的数据导入工具 SQL*Loader(sqlldr),只要你安装了...-- 关键字对SQL*Loader 具有特殊含义,因此是保留的。为避免潜在的冲突,Oracle 建议您不要将 或 用作任何表或的名称。...从 SQL*Loader 的角度来看,数据文件中的数据被组织为记录。特定数据文件可以是固定记录格式、可变记录格式或流记录格式。可以使用参数在控制文件中指定记录格式。

34030

Oracle转行函数 Listagg() 语法详解及应用实例「建议收藏」

工作中用到一段比较复杂的SQL查询脚本,使用了listagg()函数实现了具有多个值的字段的填充(即,列表聚合,list aggregation(我猜的))。...————————————————————————- 这是一个Oracle转行函数:LISTAGG() 先看示例代码: with temp as( select 'China' nation ,...同样是聚合函数,还有一个高级用法: 就是over(partition by XXX) 也就是说,在你不使用Group by语句时候,也可以使用LISTAGG函数: with temp as( select...within GROUP (order by city) over (partition by nation) rank from temp 运行结果: 总结:LISTAGG()把它当作SUM()函数使用就可以了...Oracle Database SQL Language Reference上有关listagg()函数的描述如下: —————————————————————————————————————————–

10.2K10

组合数学】生成函数 ( 使用生成函数求解多重集 r 组合数 )

文章目录 一、使用生成函数求解多重集 r 组合数 二、使用生成函数求解多重集 r 组合数 示例 参考博客 : 【组合数学】生成函数 简要介绍 ( 生成函数定义 | 牛顿二项式系数 | 常用的生成函数 |...与常数相关 | 与二项式系数相关 | 与多项式系数相关 ) 【组合数学】生成函数 ( 线性性质 | 乘积性质 ) 【组合数学】生成函数 ( 移位性质 ) 【组合数学】生成函数 ( 求和性质 ) 【组合数学...】生成函数 ( 换元性质 | 求导性质 | 积分性质 ) 【组合数学】生成函数 ( 性质总结 | 重要的生成函数 ) ★ 【组合数学】生成函数 ( 生成函数示例 | 给定通项公式求生成函数 | 给定生成函数求通项公式...) 【组合数学】生成函数 ( 生成函数应用场景 | 使用生成函数求解递推方程 ) 一、使用生成函数求解多重集 r 组合数 ---- S = \{ n_1 \cdot a_1, n_2 \cdot a_...- 1, r) 是在重复度不受限制的情况下的选取结果 , 如果重复度受限制 , 就需要使用生成函数进行计算 ; 如添加如下限制 : a_1 最多能取 3 个 , a_2 最少取 4

92600

Oracle通过substr,instr,translate函数组合获取日期分割表

前言 写这一篇文章也是因为项目从SQL数据库导入Oracle数据库中遇到的问题,主要是我们要导入的数据有年月的分割表的查询。...我们还是要的Odbc连接的那个SQL数据库。...实现思路 因为我们想要的表名最后四就是YYYYMM代表年月的数字,想要获取对应的表名我们可以分为三步: 获取表名最后六。(substr) 然后通过转义的方式把是数字的转换为一个特殊字符。...(instr) 代码实现 通过substr函数获取表名最后六 substr(string, a, b); 参数: string 需要截取的字符串 a 截取字符串的开始位置(注:当a等于0或1时,都是从第一开始截取...上图中可以看到我们用substr的函数只显示最后6的名称了。

1.8K10
领券