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 &#