【问题标题】:I want to update a table to number the positions of orders我想更新一个表格来对订单的位置进行编号
【发布时间】:2020-07-11 09:49:25
【问题描述】:

我有一个旧表,其中包含订单及其(有时是多个)带有 varchar 值的行:

Order       Row
1           1
1           1a
1           1b
2           1
2           2

我要介绍另一个整数字段“ROW_NR”

Order       Row      ROW_NR
1           1         1
1           1a        2
1           1b        3
2           1         1
2           2         2

将分别保存行号。顺序。

如何使用 SQL 完成对新字段的更新?

【问题讨论】:

  • 您使用的是哪个 Firebird 版本,增量顺序是如何确定的,以及您为实现这一目标做了什么尝试?
  • 这是客户端任务,而不是服务器端。

标签: sql count firebird


【解决方案1】:

Window-Functions 可用于实现此目的,如 Firebird windowing 中所述

(using keywords as column-name is very bad practice, in example replaced by _order_ and _row_)


ROW_NUMBER () OVER (PARTITION BY _order_ order by _row_ asc) as row_num

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    • 2013-06-04
    相关资源
    最近更新 更多