如何在查询中使用 if 条件?

查拉诺奥卢

假设我想选择matchesMAX游戏周期,如果所有的状态matches被设置好的来3,或者matchesMIN游戏周期我该怎么办呢?

数据样本

id | status | gameweek | round_id 
 1     3         3          1
 2     3         3          1
 3     1         3          1
 4     1         4          1
 5     1         4          1
 6     1         4          1

最终结果应该是:1, 2, 3因为不是所有的比赛都进行了。我能够设置查询MAX

SELECT MAX(gameweek) FROM `match` m WHERE round_id = 1 AND m.status = 3

但我有一些难以实施的 IF 条件,有人可以帮助我吗?

谢谢。

更新

在用户提出的解决方案中,我注意到我没有很好地解释特定情况:如果一轮的所有比赛都没有状态 3,则查询应返回指定的 round_id 的 MIN(gameweek)。

查拉诺奥卢

好吧,比我想象的简单,我发现我可以使用COALESCE运算符来实现这个目标,所以:

m.gameweek = (SELECT COALESCE(MIN(
                    CASE WHEN m2.status < 3 
                         THEN m2.gameweek END), 
                   MAX(m2.gameweek))
                   FROM `match` m2 
                   WHERE m2.round_id = m.round_id)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 find() 查询中使用 if 条件?

如何在MongoDB中使用条件查询

如何在条件中使用“ in”查询子对象?

如何在ElasticSearch的嵌套查询中使用&堆叠搜索条件

如何在SQL查询中使用min作为条件

如何在Django查询集中使用条件注释计数

如何在查询构建器中使用条件

如何在Laravel查询中使用多个OR,AND条件

如何在查询中使用最新日期作为条件

如何在SQL查询视图中使用条件

如何在gitlab api问题查询中使用`not`条件

如何在SQL查询中使用计数条件

如何在密码查询中使用 UNWIND 后的条件

MS-Access 如何在查询条件中使用 iif

如何在内部查询条件中使用外部查询列

MYSQL 语法 - 如何在查询中使用带有条件语句的 where 查询

如何在 CL/400 中使用 runqry 命令使用 where 条件执行 db2 查询

如何在单个Django查询中使用基于字段值的条件使用多个order_by

如何在Spring Boot Data Jpa应用程序中使用条件查询

如何在选择查询中使用IF条件以显示不为空的列

如何在SQL查询中使用2个不同的列作为条件删除行?

如何在Magento中使用带有条件的删除查询

如何在 UNION 查询中的两个表中使用 where 条件?

Waterline / Sails.js / Mongo如何在一个文件的查询中使用AND条件?

如何在Cassandra中使用QueryBuilder定义具有2个条件的Where查询?

如何在单个sql查询中使用条件更新多列

如何在 WordPress 中使用附加条件查询标准和视频帖子格式?

如何在MongoDB中使用多个条件查询数组中的对象?

如何在条件查询中使用另一个列表中的参数