gpt4 book ai didi

mysql - 使用 SQL Case 函数生成列

转载 作者:行者123 更新时间:2023-11-29 18:13:16 25 4
gpt4 key购买 nike

假设我有一个看起来像这样的表格。

-----------------------------
| ID | Name | OID | Changed |
-----------------------------
| 01 | John | 01 | N |
-----------------------------
| 02 | John | 01 | Y |
-----------------------------
| 03 | Tena | 03 | N |
-----------------------------

上表显示 4 列(“ID”、“名称”、“OID”和“更改”)。

我希望生成另一列名为“Original”的列。如果不同行的“更改”为“Y”,则使用“Y”作为该行的值生成,从该行获取“OID”值以使具有该“ID”新列值的行等于"is"。像这样的事情

----------------------------------------
| ID | Name | OID | Changed | Original |
----------------------------------------
| 01 | John | 01 | N | Y |
----------------------------------------
| 02 | John | 01 | Y | null |
----------------------------------------
| 03 | Tena | 03 | N | null |
----------------------------------------

我尝试了一些方法,但无法使其工作,我认为使用 Case 函数可能会使其工作,但不太确定如何工作。

请告诉我你的想法,谢谢。

最佳答案

将表与其自身连接起来:

SELECT t1.*, t2.Changed AS Original
FROM yourTable AS t1
LEFT JOIN yourTable AS t2 ON t1.OID = t2.OID AND t1.ID != t2.ID AND t2.Changed = 'Y'

使用LEFT JOIN意味着如果连接列不存在,我们将获得NULL

DEMO

关于mysql - 使用 SQL Case 函数生成列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47232350/

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