`
jielin000307
  • 浏览: 23909 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

这几天又学了几个oracle函数

阅读更多
前几天,涉及到一个业务,就是分组之后,将每个组内的字符串以空格分割拼接起来输出。
举个例子如下:
表结构
exa
A VARCHAR2(2) Y
B VARCHAR2(11) Y

表数据
        A       B
a 1
a 2
a 3
b 4
b 5

输出结果如下
a    1,2,3
b    4,5
如果用oracle10g 或以上的话,可以分组后直接用wmsys.wm_concat函数得到结果;
如果是mysql 可以分组后用group_concat函数来得到结果;
如果是10g以下的用等级查询,外加SYS_CONNECT_BY_PATH 函数(有点复杂);

select
t.a,
ltrim(max(sys_connect_by_path(t.b,' ')),' ') res
from
(
select e.a,e.b
row_number() over(partition by e.a order by e.a) rn,
( row_number() over(order by null)+dense_rank() over(order by e.a) ) num
from exa e
) t
start with t.rn=1 connect by prior num - 1 = num
group by t.a

用到了dense_rank,和 row_number 函数,
区别就是 row_number 是 1,2,3,4,5   不会有重复的数字,也不会跳跃
         dense_rank 是 1,1,1,2,2,3,3,3,4  有重复的数字,但不会跳跃
         rank 是  1,1,1,4,4,6,6,6,9  有重复的数字,也会跳跃,但是有规律
但是测验了下,区别还有 就是 row_number函数和后面的over 里的order没关系,只和partition有关系,dense_rank和rank都会被partition、order影响。

另外 lead函数
select t.a,lead(t.b,1) over (order by t.a) rs from exa t
结果
       A       B       rs
1 a 1 2
2 a 2 3
3 a 3 4
4 b 4 5
5 b 5


分享到:
评论

相关推荐

    简单的几个oracle函数

    根据提供的文件信息,我们可以归纳出以下几个Oracle数据库中的关键函数及其用法: ### 1. MONTHS_BETWEEN函数 **函数定义与用途:** `MONTHS_BETWEEN(date1, date2)` 函数用于计算两个日期之间的月份数。这个函数...

    ORACLE sql 星期几 一个月的第几天等 方法

    在这个资源中,我们将讨论如何使用 Oracle SQL 来获取星期几、一个月的第几天、一个年的第几天等信息。 一、获取星期几 Oracle SQL 提供了多种方式来获取星期几,下面是一些常见的方法: 1. 使用 TO_CHAR 函数 ...

    oracle日期函数全面总结

    Oracle数据库系统中,日期函数是进行时间数据处理的关键工具,对于数据库管理员和开发人员来说,理解和熟练使用这些函数至关重要。本篇文章将全面总结Oracle中的日期函数,帮助你解决日常工作中遇到的各种日期处理...

    Oracle内置函数大全

    Oracle内置函数是数据库管理系统Oracle 8i中的一个重要组成部分,这些函数极大地丰富了SQL查询和数据处理的能力。在Oracle中,日期格式和数字格式的说明符是处理数据的关键工具,它们决定了如何显示和解析日期和数字...

    Oracle函数大全实例

    本文将深入探讨Oracle中的几种主要函数类型:单行函数、多行函数以及分组函数,并给出相应的实例来帮助理解。 1. **单行函数** 单行函数在处理每一行数据时返回一个结果。它们分为字符函数、数字函数、日期函数和...

    Oracle几个很有用的特殊函数使用方法,经验只谈

    - 这个函数可以增加或减少指定的月份数。例如,`ADD_MONTHS(SYSDATE, 6)` 返回六个月后的日期。 8. **ROUND** 和 **TRUNC**(时间部分): - 对于时间部分,`ROUND` 可以四舍五入,而 `TRUNC` 可以进行向下取整。...

    oracle常见函数整理

    Oracle提供了多种函数来处理日期、数字和字符类型的数据,以下是常见的Oracle函数整理: 日期函数: 1. 日期转字符型:to_char()函数将日期类型转换为字符类型,例如to_char(sysdate,'YYYY-MM-DD')将当前日期转换...

    oracle函数

    本篇文章将深入探讨"Oracle函数"这一主题,主要关注描述中的"110种常见函数"。 1. **数学函数**:包括ABS()用于求绝对值,MOD()用于取余数,ROUND()用于四舍五入,CEIL()和FLOOR()分别用于向上和向下取整。 2. **...

    oracle日期函数字符函数聚合函数

    Oracle数据库中的日期函数、字符函数和聚合函数是数据库操作中常用的功能,对于数据处理和查询至关重要。以下将详细解释这些函数的用法和示例。 日期函数主要用于处理和操作日期数据,以下是一些主要的Oracle日期...

    sql plsql 函数学习 Oracle 快速入门

    日期函数中,`ADD_MONTHS(date, months)` 添加或减去指定月份数,`LAST_DAY(date)` 返回该月的最后一天,`MONTHS_BETWEEN(date1, date2)` 计算两个日期间的月份数,`NEXT_DAY(date, day)` 返回给定日期之后的指定...

    oracle内部函数大全

    3. **NEXT_DAY(X, Y)**: 返回日期X之后的第一个Y天(Y为星期几)。例如,`NEXT_DAY(TO_DATE('2023-01-01'), 'Sunday')`返回`2023-01-01`(假设1月1日是周日)。 4. **MONTHS_BETWEEN(X, Y)**: 返回日期X与Y之间相差...

    DB2常用函数与Oracle比较

    我们将从类型转换函数、时间日期相关的函数以及字符串处理函数三个方面进行详细探讨。 #### 一、类型转换函数 在数据库操作中,类型转换是非常常见且重要的功能之一。DB2与Oracle在这方面的实现略有不同: 1. **...

    oracle 内置函数

    Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,它提供了丰富的内置函数来帮助用户高效地...通过不断地实践和探索,你可以更深入地理解和掌握Oracle内置函数的精髓,从而更好地驾驭这个强大的数据库系统。

    oracle第4章 单行函数

    ### Oracle 第四章 单行函数 #### 一、引言 在Oracle数据库的学习过程中,了解并掌握单行函数是非常重要的一步。单行函数是指针对每一行的数据进行处理,并返回一个处理结果的函数。这类函数在查询语句中非常常见,...

    ORACLE常用日期函数集合

    - `DD`: 返回一个月中的第几天。 ```sql SELECT to_char(sysdate, 'DD') FROM dual; ``` - `D`: 返回一周中的第几天,其中1代表周日。 ```sql SELECT to_char(sysdate, 'D') FROM dual; ``` - `DY`: 返回一...

    oracle时间函数

    其中`'DD'`是日期格式的一部分,表示一个月份中的第几天(1到31)。 3. **TO_NUMBER(expression)**: 将字符串表达式转换为数字。这里将步骤2得到的结果转换为数字类型。 **结果**: 此查询返回的是当前日期在本月中...

    Oracle常用单行函数

    Oracle数据库系统提供了丰富的单行函数,这些函数在日常的编程和数据处理中极为重要。本文主要介绍Oracle中的字符函数、数学函数、日期函数以及转换函数。 首先,让我们详细探讨字符函数。字符函数主要用于处理字符...

    sql21天自学通和oracle常用函数集锦

    在SQL的学习过程中,你会接触到以下几个关键知识点: 1. **SQL基础**:包括SQL的数据类型(如整型、浮点型、字符串型、日期/时间型等)、基本的SELECT语句用于查询数据、INSERT语句用于插入数据、UPDATE语句用于...

    21天学通Oracle第二版

    在Oracle数据库系统中,学习内容通常包括以下几个核心部分: 1. **Oracle概述**:Oracle是全球最广泛使用的商业关系型数据库管理系统之一,由甲骨文公司(Oracle Corporation)开发。它提供了数据存储、管理、备份...

    oracle日期函数

    Oracle 提供了两个重要的日期和字符转换函数:TO_DATE 和 TO_CHAR。TO_DATE 函数用于将字符串转换为日期类型,而 TO_CHAR 函数用于将日期类型转换为字符串。 例如,使用 TO_DATE 函数将字符串 '222' 转换为日期类型...

Global site tag (gtag.js) - Google Analytics