ORACLE 语句 新增Listagg函数(20201124)

本文介绍了Oracle数据库的一些重要函数和操作,包括NOT Between、Exists、ABS、CEIL/FLOOR、WM_CONCAT、UNION/UNION ALL、INTERSECT/MINUS、新增修改删除列、索引操作以及Listagg聚合函数的使用。重点讲解了Listagg函数及其在数据聚合中的应用,以及如何进行进制转换。
摘要由CSDN通过智能技术生成

1.【NOT】 Between A and B

当A<=n<=B时,返回true。

select * from TABLE_A where n between A and B;

2.【NOT】 Exists

当TABLE_A.ID在TABLE_B.ID中存在时,返回true。

select * from TABLE_A where exists(select 1 from TABLE_B where TABLE_A.ID=TABLE_B.ID);

3.ABS函数

返回n的绝对值。

select abs(n) from dual;

4.CEIL函数,FLOOR函数

ceil:天花板,向上取整,即返回大于或等于n的数值。

floor:地板,向下取整,返回小于或等于n的数值。

select ceil(-5.25),ceil(5.25) from dual;

结果:-5,6。

select floor(-5.25),floor(5.25) from dual;

结果:-6,5。

5.WM_CONCAT函数

常用于行数据合并,返回大对象数据类型CLOB,也可以通过TO_CHAR()转换,中间为逗号隔开。

select wm_concat(name) from sys_student where name like '季%'; 

但是此函数无法排序,需配合Partition分区分组,再使用Order by排序,

SELECT LOT.LOT_NO,
       TO_CHAR(wm_concat(SERIAL_NUMBER)
               over(partition by
LOT_NO order by SERIAL_NUMBER)) SN
  FROM G_PALLET_LOT LOT, G_SN_STATUS SN
 WHERE LOT.PALLET_NO = SN.PALLET_NO
   AND LOT.PALLET_NO = '2K31D5814115';

 再嵌套一层Select From,取Max(SN)即可。

SELECT COUNT(*) QTY, LOT_NO, MAX(TO_CHAR(SN)) SN
  FROM (SELECT LOT.LOT_NO,
               TO_CHAR(wm_concat(SERIAL_NUMBER) over(partition by LOT_NO order by SERIAL_NUMBER

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值