gpt4 book ai didi

mysql - SQL UPDATE 语句基于另一个现有行更新列

转载 作者:可可西里 更新时间:2023-11-01 08:53:59 29 4
gpt4 key购买 nike

基本上我有一个与下表格式相似的表格。

我想做的是根据这个逻辑更新col4

  • 如果 Col2 为空则用 Col3 更新 Col4
  • 如果 Col2 不为空,则在 Col1 中找到与 Col2 中的值匹配的值。用 col3 中的相应值更新 col4

例如给定这个表:

| Col1 | Col2 | Col3 | Col4 |
-----------------------------
| 1 | 2 | A1 | 2 |
-----------------------------
| 2 | 3 | A2 | 3 |
-----------------------------
| 3 |{null}| A3 |{null}|

更新为这张表

| Col1 | Col2 | Col3 | Col4 |
-----------------------------
| 1 | 2 | A1 | A2 |
-----------------------------
| 2 | 3 | A2 | A3 |
-----------------------------
| 3 |{null}| A3 | A3 |

任何方向将不胜感激!

最佳答案

像这样的东西应该可以工作(未经测试):

UPDATE  table
SET col4 = CASE WHEN table.col2 IS NULL THEN table.col3 ELSE col2Matches.col3 END
FROM table
INNER JOIN table AS col2Matches
ON table.col2 = col2Matches.col1

这应该让你测试它:

SELECT  CASE WHEN table.col2 IS NULL THEN table.col3 ELSE col2Matches.col3 END
FROM table
INNER JOIN table AS col2Matches
ON table.col2 = col2Matches.col1

希望对您有所帮助,

皮特

关于mysql - SQL UPDATE 语句基于另一个现有行更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9065509/

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