gpt4 book ai didi

mysql:在同一列中比较后更改值

转载 作者:行者123 更新时间:2023-11-29 10:13:45 26 4
gpt4 key购买 nike

这里我想更新一个 id 的值,如果它的值比另一个 id 的值小 1,并更新它,然后再次将更新后的值与其他值进行比较。
用简单的语言来说,检查连续的值,并将值替换为该序列中的最高值

ID          value
1 4
2 5
3 10
4 6
5 12
6 11
7 18

所以,决赛 table 会是这样的。

ID          value
1 6
2 6
3 12
4 6
5 12
6 12
7 18

我尝试使用 join 语句,但无法弄清楚。

最佳答案

如果 ID 列是连续的,这应该可以工作:

SELECT
*
FROM
(
SELECT
This.ID,
Value=MIN(X.Value)
FROM
MyTable THIS
LEFT OUTER JOIN MyTable LAG ON LAG.Value = THIS.Value + 1
LEFT OUTER JOIN
(
SELECT
This.ID,
This.Value
FROM
MyTable THIS
LEFT OUTER JOIN @T LAG ON LAG.Value = THIS.Value + 1
WHERE
LAG.Value IS NULL
)AS X ON X.Value >= THIS.Value
GROUP BY
This.ID,
This.Value
)AS Y
ORDER BY
ID

关于mysql:在同一列中比较后更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50471114/

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