如果某些字段为空,我需要添加带有默认值的行。
想象一下以下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
这可能吗?
答案 0 :(得分:0)
您可以使用IFNULL()函数。 它的工作方式如下:IFNULL(表达式,值) 在哪里检查表达式是否为null,如果是,则将其替换为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...
希望这有帮助