gpt4 book ai didi

mysql - 基于另一列值的列值

转载 作者:行者123 更新时间:2023-11-29 21:30:43 26 4
gpt4 key购买 nike

我的表“application_form”中有此数据,我在根据 class1_statusclass2_status 列获取值时遇到问题。以前客户的要求是显示所有数据以及数据表中存在的值。

现在,要求略有变化,他们想要

  1. class1_update_date 仅当 class1_status 为“completed”时才值,而对于其余状态则为 null。<
  2. class2_update_date 仅当 class2_status 为“completed”时才值,而对于其余状态则为 null。<

这是我的表结构。数据是虚拟的。

Sno | class1_update_date | class2_update_date | class1_status | class2_status
1 10-01-2004 10-01-2006 completed pending
2 10-01-2004 10-01-2006 pending pending
3 10-01-2004 10-01-2006 in progress pending
4 10-01-2004 10-01-2006 pending pending
5 10-01-2004 10-01-2006 pending pending
6 10-01-2004 10-01-2006 in progress pending
7 10-01-2004 10-01-2006 completed completed
8 10-01-2004 10-01-2006 in progress pending
9 10-01-2004 10-01-2006 completed completed
10 10-01-2004 10-01-2006 in progress pending

这是一个之前写过的简单查询。现在,我不知道如何给出条件来代替列名称以获得所需的输出。

    SELECT class1_update_date, class2_update_date, class1_status, class2_status 
FROM application_form;

因为,我不太擅长 SQL 查询。所以,我想就这种情况提出问题。

预期输出。

Sno | class1_update_date | class2_update_date | class1_status | class2_status
1 10-01-2004 completed pending
2 pending pending
3 in progress pending
4 pending pending
5 pending pending
6 in progress pending
7 10-01-2004 10-01-2006 completed completed
8 in progress pending
9 10-01-2004 10-01-2006 completed completed
10 in progress pending

我也在尝试并搜索问题,但也无法开始。

最佳答案

尝试使用如下的 case 语句:

SELECT case when class1_status = 'completed' then class1_update_date else null end as class1_update_date,
case when class2_status = 'completed' then class2_update_date else null end as class2_update_date,
class1_status, class2_status
FROM application_form

您不需要任何条件,因为您要选择所有记录,case 语句检查状态是否已完成,然后输入值,如果不输入null

关于mysql - 基于另一列值的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35292544/

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