gpt4 book ai didi

mysql - 在 CASE 语句之后应用 WHERE?

转载 作者:行者123 更新时间:2023-11-29 08:23:37 25 4
gpt4 key购买 nike

我正在使用 CASE 语句来构建某些日期过滤的查询,但在获得正确的 CASE 语法后,我无法设法应用WHERE 语句。

所以,我想知道,我该怎么做?

我的实际代码是:

SELECT id, fecha_inicio,
CASE WHEN eventos.fecha_fin IS NULL
THEN DATE_ADD(eventos.fecha_inicio, INTERVAL 45 DAY)
ELSE fecha_fin
END as fecha_fin_new
FROM eventos
WHERE DATE_FORMAT(fecha_fin_new, '%Y-%m') >= '2006-01'

最佳答案

WHERE 只能与表值一起使用。要处理 SELECT 别名,您必须使用 HAVING

SELECT id, fecha_inicio,
CASE WHEN eventos.fecha_fin IS NULL
THEN DATE_ADD(eventos.fecha_inicio, INTERVAL 45 DAY)
ELSE fecha_fin
END as fecha_fin_new
FROM eventos
HAVING DATE_FORMAT(fecha_fin_new, '%Y-%m') >= '2006-01'

您还可以将 CASE 表达式替换为:

IFNULL(fecha_fin, DATE_ADD(eventos.fecha_inicio, INTERVAL 45 DAY))

关于mysql - 在 CASE 语句之后应用 WHERE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18568627/

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