加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql关联更新与窗口函数应用

发布时间:2020-12-13 17:27:28 所属栏目:百科 来源:网络整理
导读:表结构如下 这里面的数据就是全国行政区划 1.seqno就是序列,是所有节点dictcode连起来的序列,以点隔开。以第二级rank=2为例,则seqno=(parentcode的seqno)||dictcode||'.' 我们关联更新下 update sys_casdictentry a set seqno=b.seqno||a.dictcode||'.' f

表结构如下


这里面的数据就是全国行政区划


1.seqno就是序列,是所有节点dictcode连起来的序列,以点隔开。以第二级rank=2为例,则seqno=(parentcode的seqno)||dictcode||'.' 我们关联更新下


update sys_casdictentry a
set seqno=b.seqno||a.dictcode||'.'
from sys_casdictentry as b
where a.rank=2 and a.parentcode=b.dictcode;


这里面要注意的是set后面的seqno=前不能带别名,也就是set a.seqno=这样会报错,不知道为什么,试了很多次才摸索出规律。


2.用一下窗口函数,刚倒进来的数据没有sortno也就是排序字段,现在想设置为按照dictcode排列

update sys_casdictentry a set sortno=c.sortno
from (select row_number() over(partition by dicttype,parentcode order by dictcode) as sortno,dictcode from sys_casdictentry b where rank=2) c
where a.rank=2 and a.dictcode=c.dictcode;


关键在于select row_number() over(partition by dicttype,parentcode order by dictcode) as sortno

这个大家自己体会

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读