oracle中rawnum函数,Oracle常用函数(row_number、merge into、case等)

oracle的ROW_NUMBER()语法如下(可以用来去重):

1、row_number() over(order by column asc)先对列column按照升序,再为每条记录返回一个序列号:

select personalid,row_number() over(order by personalid asc) rn from  neogoodsrule

2、row_number() over(partition by column1 order by column2 asc) 先按照column1分组,再对分组后的数据进行以column2升序排列

select personalid,ct_smp_type,row_number() over(partition by personalid order by ct_smp_type asc) rn from neogoodsrule

oracle的merge into语法如下:

判断目标表中有没有符合on()条件中的数据,有了就从原表更新数据,没有就从原表插入数据。

merge into 目标表 a

using 源表 b

on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……)

when matched then update set a.更新字段=b.字段

when  not macthed then insert into a(字段1,字段2……)values(值1,值2……)

举例:

merge into RME_PORT@resltjt_t   a

using ( select  * from  resltjt_t.TRS_TRS_NE ) rs

on ( a.nms_orig_res_id=rs.nms_orig_res_id )  --条件

when matched then

update set    a.super_res_id=rs.TRS_NE_ID

case用法

(CASE B.DELETE_STATE WHEN '1' THEN '全部一致' WHEN '2' THEN 'B有O无' ELSE '' END)

as "DELETE_STATE",

-- 此处用了dbms_lob.substr函数用来操作的大型对象,叫做大型对象定位器,

-- 前面的utl_raw.cast_to_varchar2函数用来将blob转为varchar2

select utl_raw.cast_to_varchar2(dbms_lob.substr(rsp_xml)) from inf_comm_client_calllog t where col3='200980701501593004';

--ROWNUM使用注意

ROWNUM < 2 查询时,只返回1条数据

使用时,若总查询出数据为5条,则rownum < 10条会导致一直查询

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值