如果某些字段为空,我需要添加具有默认值的行。
想象一下下面的 SELECT 子句:
SELECT date, id, name, COALESCE(value1, -1), COALESCE(value2, -1),
COALESCE(value3, -1)
FROM (SELECT DATE("startDate" + INTERVAL(seq_ref.seq - 1) MONTH) AS month_ref
FROM (SELECT seq FROM seq_1_to_36) seq_ref, table) table
WHERE...
以及以下数据集:
date id name value1 value2 value3
2016-01-01 1 TEST LEFT 12 14 22
2016-01-01 1 TEST RIGHT 32 11 74
2016-02-01 1 null -1 -1 -1
2016-03-01 1 TEST LEFT 09 66 33
2016-03-01 1 TEST RIGHT 13 41 20
好的,基本上它会返回一个日期范围内的一些数据。但如果某些月份没有数据,则返回 -1 作为值。 我需要知道是否有办法在没有数据的情况下添加两行 id 和 name 的默认值。
例如:在 2016-02-01
我应该能够为 TEST LEFT
显示一行,值 -1 和 TEST RIGHT
-1 到值。
编辑:结果应该是这样的
date id name value1 value2 value3
2016-01-01 1 TEST LEFT 12 14 22
2016-01-01 1 TEST RIGHT 32 11 74
2016-02-01 1 TEST LEFT -1 -1 -1
2016-02-01 1 TEST RIGHT -1 -1 -1
2016-03-01 1 TEST LEFT 09 66 33
2016-03-01 1 TEST RIGHT 13 41 20
这可能吗?
最佳答案
您可以使用 IFNULL() 函数。 它是这样工作的:IFNULL(expression, value) 它检查表达式是否为空,如果是,则用值参数替换它 你可能会这样做:
SELECT date, id, name, IFNULL(value1, -1), IFNULL(value2, -1),
IFNULL(value3, -1)
FROM (SELECT DATE("startDate" + INTERVAL(seq_ref.seq - 1) MONTH) AS month_ref
FROM (SELECT seq FROM seq_1_to_36) seq_ref, table) table
WHERE...
希望对你有帮助
关于mysql - 如果条件为空,则添加具有默认值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50817899/