oracle数据库日常使用总结

oracle数据库日常使用总结

decode函数的使用

**使用规则:**decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)

方法原理:

IF 条件=值1 THEN
    RETURN(翻译值1)
ELSIF 条件=值2 THEN
    RETURN(翻译值2)
    ......
ELSIF 条件=值n THEN
    RETURN(翻译值n)
ELSE
    RETURN(缺省值)
END IF

Decode函数与一系列嵌套的 IF-THEN-ELSE语句相似。但是使用更加便捷简单。开发中主要可用于:

1. 对不同取值的数据进行计数

在统计策略项目的成功和失败情况时,直接使用Count函数无法完成分别统计成功和失败的次数。此时可以使用sum函数和decode函数结合,例如SUM (DECODE(H.SERVICE_STATUS,'1',1,0)) AS SUCCESS,若H.SERVICE_STATUS为’1’(其中’1’表示成功),则返回数字1,通过sum函数进行求和,即可求得所有SERVICE_STATUS为’1’的次数

2. 将当前值翻译为其他值

由上例已经可以看出,在使用DECODE(H.SERVICE_STATUS,'1',1,0)时,将字符型的1翻译为了数字1,使其可以进行求和操作

字符串拼接操作

同一条数据中不同列的字符串之间进行拼接操作

oracle中可以使用||CONCAT两种方式进行字符串拼接

使用||方式:'字符串1' || '字符串2' || '字符串3' || '字符串4'

注意:这种方式进适用于oracle数据库,在MySQL或其他数据库中不能采用这种方式

使用CONCAT方式:SELECT CONCAT('字符串1','字符串2') FROM TableName

注意:CONCAT()在oracle中只能拼接两个字符串,如果需要拼接多个字符串,可采用多个CONCAT()嵌套拼接多个字符串。但在MySQL中,CONCAT()函数是可以同时拼接多个字符串的,用法如下

`SELECT CONCAT('字符串1','字符串2','字符串3','字符串4') FROM TableName`
字符串聚合拼接操作

常用的有

  1. WMSYS.WM_CONCAT (从oracle 10G开始支持)
  2. LISTAGG(measure_expr,delimiter) WITHIN GROUP(order_by_clause) OVER(query_partition_clause) (从oracle 11G R2开始支持)
  3. SYS_CONNECT_BY_PATH (从oracle 9i开始支持)
WMSYS.WM_CONCAT用法
select wmsys.wm_concat(colname1) 
from TableName
group by colname2;

默认分隔符为逗号,如果想替换为其他分隔符,可采用如下方法

select replace(wmsys.wm_concat(colname1),',','、') 
from TableName
group by colname2;

其余两种情况后续补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值