我在 postgres 中有一张这样的表:
Id Name local_site_id local_id
1 A 2
2 B 2
3 C 1
4 D 2
5 E 1
如何使用 SQL 查询将表更新为:
Id Name local_site_id local_id
1 A 2 1
2 B 2 2
3 C 1
4 D 2 3
5 E 1
目前,所有记录的 local_id 字段均为空。我想用从 1 开始的递增数字更新 local_id 值,仅适用于具有local_site_id=2
可以使用SQL吗?
这是一个典型的用例row_number()
窗函数。
假设您的主表是 T,此查询应该适用于 postgresql 8.4 或更高版本:
update T set local_id=s.rn
from (select id,row_number() over(order by id) as rn from T where local_site_id=2) s
where T.id=s.id;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)