gpt4 book ai didi

SQL 现有列条件更新查询

转载 作者:行者123 更新时间:2023-12-04 05:43:20 25 4
gpt4 key购买 nike

我有这个数据

AnsID  QuesID  AnsOrder
-----------------------
1 5 NULL
2 5 NULL
3 5 NULL
4 5 NULL
5 5 NULL
6 3 NULL
7 3 NULL
8 3 NULL
9 3 NULL
10 3 NULL
11 4 NULL
12 4 NULL
13 4 NULL
14 4 NULL
15 4 NULL
16 7 NULL
17 9 NULL
18 9 NULL
19 9 NULL
20 9 NULL
21 8 NULL
22 8 NULL
23 8 NULL
24 8 NULL

想要将其更新为这种格式
AnsID  QuesID  AnsOrder
-----------------------

1 5 1
2 5 2
3 5 3
4 5 4
5 5 5
6 3 1
7 3 2
8 3 3
9 3 4
10 3 5
11 4 1
12 4 2
13 4 3
14 4 4
15 4 5
16 7 1
17 9 1
18 9 2
19 9 3
20 9 4
21 8 1
22 8 2
23 8 3
24 8 4

基本上我想根据 QuesID 列按升序更新 AnsOrder 列,
像这样更具可读性。
AnsID  QuesID  AnsOrder
-----------------------

1 5 1
2 5 2
3 5 3
4 5 4
5 5 5

6 3 1
7 3 2
8 3 3
9 3 4
10 3 5

11 4 1
12 4 2
13 4 3
14 4 4
15 4 5

16 7 1

17 9 1
18 9 2
19 9 3
20 9 4

21 8 1
22 8 2
23 8 3
24 8 4

最佳答案

您可以通过 quesID 生成 row_numbers 并将它们分配给 AnsOrder,如下所示:

; with ord as (
select *,
row_number() over (partition by quesID
order by AnsID) rn
from table1
)
update ord
set ansorder = rn

为了一致性,我已通过 AnsID 订购。
Check this @ Sql Fiddle .

关于SQL 现有列条件更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10993978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com