使用SQL使用Row_Number()使用行号更新表

用户名

我在wrntybank_table中有这组数据:

doc_no   doc_lineno  stk_code  stk_lineno  serial_no  warranty_no
doc1        NULL        ABC         NULL      ABC1       WRN1
doc1        NULL        ABC         NULL      ABC5       WRN5
doc1        NULL        DEF         NULL      ABC2       WRN2
doc2        NULL        ABC         NULL      ABC3       WRN3
doc4        NULL        HJI         NULL      ABC4       WRN4
doc4        NULL        HJI         NULL      ABC6       WRN6

我想更新此表并用数字填充doc_lineno&stk_lineno列,如下所示:

doc_no   doc_lineno  stk_code  stk_lineno  serial_no  warranty_no
doc1        1        ABC         1      ABC1           WRN1
doc1        1        ABC         2      ABC5           WRN5
doc1        2        DEF         1      ABC2           WRN2
doc2        1        ABC         1      ABC3           WRN3
doc4        1        HJI         1      ABC4           WRN4
doc4        1        HJI         2      ABC6           WRN6

如何在两列中都使用此代码。

with toupdate as (
          select Document,
                 10 * row_number() over (partition by Document order by (select NULL)) as val
          from t
         )
update toupdate
    set line_num = val;

注意:对于doc_lineno,相同doc_no中相同stk_code的编号保持不变,并将在stk_code和doc_no上重置。对于stk_lineno,数字将在比较时重置。stk_code

yswai1986

假设该表具有标识col来标识每一行。

with cte (id, dln, sln)
as
(
   select id, dense_rank() over (partition by doc_no order by stk_code asc) as dln
      , row_number() over (partition by doc_no, stk_code order by serial_no asc) as sln
   from @t_test
)
update @t_test
set doc_lineno = cte.dln
   , stk_lineno = cte.sln
from @t_test as t
inner join cte as cte
on t.id = cte.id
;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用ROW_NUMBER()和where子句获取未过滤表中的行号

来自分类Dev

如何在SQL中使用ROW_NUMBER()更新列

来自分类Dev

如何使用row_number()将行号分配给Postgresql中的重复值

来自分类Dev

如何使用 ROW_NUMBER() 向 MySQL 显示添加行号

来自分类Dev

在更新语句中使用Row_Number()

来自分类Dev

最近在分区上使用row_number()的SQL

来自分类Dev

使用Row_Number进行价格排序的SQL语法

来自分类Dev

如何避免使用row_number嵌套SQL查询

来自分类Dev

在 SQL Server 的 WHERE 子句中使用 ROW_NUMBER()

来自分类Dev

使用日期索引优化ROW_NUMBER()

来自分类Dev

如何正确使用Row_Number()

来自分类Dev

ROW_NUMBER()OVER(PARTITION BY ...)使用麻烦

来自分类Dev

使用日期索引优化ROW_NUMBER()

来自分类Dev

LINQ使用ROW_NUMBER()函数吗?

来自分类Dev

使用 Row_Number 将对该表的选择结果插入表中

来自分类Dev

如何使用限制使用ROW_NUMBER()从SQL Server返回的结果

来自分类Dev

如何在不使用ROW_NUMBER()的情况下模仿ROW_NUMBER()功能?

来自分类Dev

在asp.net gridview中使用ROW_NUMBER()在SQL中进行自定义分页

来自分类Dev

在SQL Server中的case语句中使用Row_Number()

来自分类Dev

使用SQL Server ROW_NUMBER()进行分页时性能不佳

来自分类Dev

使用row_number()的无效列名OVER(PARTITION BY)

来自分类Dev

distinct和row_number不能一起使用

来自分类Dev

如何在UPDATE子句中使用ROW_NUMBER()?

来自分类Dev

如果未识别列名,如何使用ROW_NUMBER()?

来自分类Dev

使用ROW_NUMBER函数选择最后一行

来自分类Dev

如何使用条件和PARTITION BY制作ROW_NUMBER()函数?

来自分类Dev

使用ROW_NUMBER()窗口函数选择行

来自分类Dev

使用ORDER BY代替PARTION BY row_number()。over()

来自分类Dev

将ROW_NUMBER()与聚合函数一起使用

Related 相关文章

  1. 1

    使用ROW_NUMBER()和where子句获取未过滤表中的行号

  2. 2

    如何在SQL中使用ROW_NUMBER()更新列

  3. 3

    如何使用row_number()将行号分配给Postgresql中的重复值

  4. 4

    如何使用 ROW_NUMBER() 向 MySQL 显示添加行号

  5. 5

    在更新语句中使用Row_Number()

  6. 6

    最近在分区上使用row_number()的SQL

  7. 7

    使用Row_Number进行价格排序的SQL语法

  8. 8

    如何避免使用row_number嵌套SQL查询

  9. 9

    在 SQL Server 的 WHERE 子句中使用 ROW_NUMBER()

  10. 10

    使用日期索引优化ROW_NUMBER()

  11. 11

    如何正确使用Row_Number()

  12. 12

    ROW_NUMBER()OVER(PARTITION BY ...)使用麻烦

  13. 13

    使用日期索引优化ROW_NUMBER()

  14. 14

    LINQ使用ROW_NUMBER()函数吗?

  15. 15

    使用 Row_Number 将对该表的选择结果插入表中

  16. 16

    如何使用限制使用ROW_NUMBER()从SQL Server返回的结果

  17. 17

    如何在不使用ROW_NUMBER()的情况下模仿ROW_NUMBER()功能?

  18. 18

    在asp.net gridview中使用ROW_NUMBER()在SQL中进行自定义分页

  19. 19

    在SQL Server中的case语句中使用Row_Number()

  20. 20

    使用SQL Server ROW_NUMBER()进行分页时性能不佳

  21. 21

    使用row_number()的无效列名OVER(PARTITION BY)

  22. 22

    distinct和row_number不能一起使用

  23. 23

    如何在UPDATE子句中使用ROW_NUMBER()?

  24. 24

    如果未识别列名,如何使用ROW_NUMBER()?

  25. 25

    使用ROW_NUMBER函数选择最后一行

  26. 26

    如何使用条件和PARTITION BY制作ROW_NUMBER()函数?

  27. 27

    使用ROW_NUMBER()窗口函数选择行

  28. 28

    使用ORDER BY代替PARTION BY row_number()。over()

  29. 29

    将ROW_NUMBER()与聚合函数一起使用

热门标签

归档