Я пытаюсь найти самое низкое число в двух столбцах строки в той же таблице, с оговоркой, что один из столбцов может быть нулевым в определенной строке. Если один из столбцов имеет значение null, я хочу, чтобы значение в другом столбце возвращалось для этой строки, так как в этом случае это самый низкий столбец, отличный от нуля. Если я использую функцию minimum() в MySQL 5.1:
select least(1,null)
Это возвращает null, что не то, что я хочу. Мне нужен запрос для возврата 1 в этом случае.
Мне удалось получить результат, который я хочу получить с помощью этого запроса:
select least(coalesce(col1, col2)) , coalesce(col2,col1))
Пока col1 и col2 оба не равны нулю, каждый оператор coalesce возвращает число, а наименьшее() обрабатывает поиск самого низкого.
Есть ли более простой/быстрый способ сделать это? Я использую MySQL в этом случае, но общие решения приветствуются.