Почему GREATEST(createdTS, modifiedTS)
с одним из столбцов «null» возвращает «null»?mySQL «наибольший» с двумя столбцами, которые могут быть нулевыми
Если один из них равен нулю, мне просто нужно значение другого. Если оба значения равны нулю, то null.
Как я могу это сделать?
Как я заметил, я могу использовать COALESCE
как GREATEST(COALESCE(createdTS,0), COALESCE(modifiedTS,0))
- это лучшее решение?
Попробуйте использовать Greatest (NVL (createdTS, 0), NVL (modifiedTS_0)). Логические операции с NULL приводят к NULL. – Veverke
Только что узнал, что БОЛЬШЕ (COALESCE (createdTS, 0), COALESCE (modifiedTS, 0)) действительно работает - это лучше? Или ваш предпочитает? –
В этом случае я не вижу причин использовать Coalesce вместо NVL. Coalesce предназначен, если у вас есть выражения с несколькими значениями, здесь ваши столбцы являются одиночными значениями. – Veverke