PostgreSQL:使用升值更新column1,具体取决于column2的排序顺序

安布兰

我有一个表“新娘”与一些像这样的字符串值:

id       name     order
-------  -------  -------
1        Beatrix 
2        Bill 
3        ORen
4        Vernita
5        Elle 
6        Budd

我想根据对“名称”列的排序顺序,以数字(从1开始)更新“顺序”列。像那样:

id       name     order
-------  -------  -------
1        Beatrix  1
2        Bill     2
3        ORen     5
4        Vernita  6
5        Elle     4
6        Budd     3

我的问题是如何使用排序的名称作为插入实际订单号的顺序。任何帮助都会很棒。

a_horse_with_no_name

这可以使用窗口函数来完成

update the_table
  set "order" = t.rn
from (
   select id, 
          row_number() over (order by name) as rn
   from the_table
) t where t.id = the_table.id;

order是保留关键字。您不应将其用作列名。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果 column1 是数字,则更新 column2

在 PostgresQL 表中,如何使用 column1 中的所有值创建列,而 column1 中当前行的值出现在 column2 中?

条件更新 column1 或 column2 或 column3

每个ID具有多少“ column1”,“ column2”和“ total”,并按“ total”排序

熊猫在 column1 中查找匹配项并更新 column2 上的相应行

python更新csv文件,条件为column2从column1开始

SELECT WHERE column1 = 1 AND column2 = MAX(column2)

根据 column1 的值将 column1 的值设置为 column2 的值

从Oracle DB以每行<column1> column2 <column1>的形式读取XML

如何选择column2,但如果column2为零,则选择select column1

根据另一列中的值按 column1 或 column2 对行进行排序

如何使用当前行的 column2 值填充来自所有行的 column1 中所有值的列表的 PostgresQL 列

使用R,当同一行的Column2包含一个单词时,如何在“ column1”中获取“ cell”进行更新?

选择 column1、column2、column3 和 column4 != 1 的行

MySQL的。选择列作为column1,在其中...全部合并选择列作为column2,在其中...仅看到column1(不是column2)

如果column2是NA,则在column1上联接,否则在column1和column2上联接

pandas :读取 xlsx 文件以使用 column1 作为键和 column2 作为值进行字典

Mysql ORDER BY(Column2 + Column3)如果Column1为空?

如何在SQL中使“ column3” =“ column1”-“ column2”

如果column2更改,则MySQL column1递增1

Pd['Column1] > Pd['Column2'] 键错误:0

将mysql中的值从column1复制到column2

SQL根据两行中column1中的值选择一column2

在 R 中的数据框中,Column1 的值是 Column2 的最小值

MySQL:插入没有重复的column1和column2

mysql:如何添加?“ column1” +“ column2”,其中id_parent等于

如何合并column1为column2的子字符串的数据帧

SQL:在column1上选择不重复,并汇总合并行的column2值

读取以竖线和逗号分隔的文件:| column1 |,| column2 |