Добавление строк со значениями по умолчанию, если условие равно нулю - PullRequest
0 голосов
/ 12 июня 2018

Мне нужно добавить строки со значениями по умолчанию, если какое-либо поле имеет значение null.

Представьте себе следующее предложение 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 для значений.Мне нужно знать, если есть способ добавить две строки со значениями по умолчанию для идентификатора и имени, если нет данных.

Например: на 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

Возможно ли это?

1 Ответ

0 голосов
/ 12 июня 2018

Вы можете использовать функцию IFNULL ().Он работает так: IFNULL (выражение, значение), где он проверяет, является ли выражение пустым, и если это так, он заменяет его параметром значения. Возможно, вы могли бы сделать что-то вроде:

    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...

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...