是否有可能为给定的 mysql 查询引入 if else?此查询生成 4 列。这可以放在一个列中吗?
SELECT
IF(regression.execution_date >= CONCAT(YEAR(CURDATE() - 1), '-','07', '-','01') AND regression.execution_date <= CONCAT(YEAR(CURDATE()), '-', '09', '-', '30'), CONCAT(YEAR(CURDATE() - 1), '.', '1'), 0) AS 'Q1',
IF(regression.execution_date >= CONCAT(YEAR(CURDATE() - 1),'-','10','-','01') AND regression.execution_date <= CONCAT(YEAR(CURDATE()), '-', '12', '-', '31'), CONCAT(YEAR(CURDATE() - 1), '.', '2'),0) AS 'Q2',
IF(regression.execution_date >= CONCAT(YEAR(CURDATE()), '-', '01', '-', '01') AND regression.execution_date <= CONCAT(YEAR(CURDATE()), '-', '03', '-', '31'), CONCAT(YEAR(CURDATE()), '.', '3'), 0) AS 'Q3',
IF(regression.execution_date >= CONCAT(YEAR(CURDATE()), '-', '04', '-', '01') AND regression.execution_date <= CONCAT(YEAR(CURDATE()), '-', '06', '-', '31'), CONCAT(YEAR(CURDATE()), '.', '4'), 0) AS 'Q4'
FROM
regression
解决方法:
感谢大家的评论。我用 case 实现了它,它起作用了。
SELECT
CASE
WHEN regression.execution_date >= CONCAT(YEAR(CURDATE() - 1), '-','07', '-','01') AND regression.execution_date <= CONCAT(YEAR(CURDATE()), '-', '09', '-', '30') THEN (CONCAT(YEAR(CURDATE() - 1), '.', '1'))
WHEN regression.execution_date >= CONCAT(YEAR(CURDATE() - 1), '-','10', '-','01') AND regression.execution_date <= CONCAT(YEAR(CURDATE()), '-', '12', '-', '31') THEN (CONCAT(YEAR(CURDATE() - 1), '.', '2'))
WHEN regression.execution_date >= CONCAT(YEAR(CURDATE()), '-','01', '-','01') AND regression.execution_date <= CONCAT(YEAR(CURDATE()), '-', '03', '-', '31') THEN (CONCAT(YEAR(CURDATE()), '.', '3'))
WHEN regression.execution_date >= CONCAT(YEAR(CURDATE()), '-','04', '-','01') AND regression.execution_date <= CONCAT(YEAR(CURDATE()), '-', '06', '-', '31') THEN (CONCAT(YEAR(CURDATE()), '.', '4'))
END as 'Quarter'
FROM
regression
最佳答案
要计算实际的四分之一吗?
使用这个:
SELECT QUARTER(now());
样本
MariaDB [(none)]> SELECT QUARTER(now());
+----------------+
| QUARTER(now()) |
+----------------+
| 2 |
+----------------+
1 row in set (0.00 sec)
MariaDB [(none)]> SELECT QUARTER('2015-10_07');
+-----------------------+
| QUARTER('2015-10_07') |
+-----------------------+
| 4 |
+-----------------------+
1 row in set (0.00 sec)
MariaDB [(none)]>
关于MySql If else 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37292428/