Estoy tratando de encontrar el número más bajo en dos columnas de una fila en la misma tabla, con la advertencia de que una de las columnas puede ser nula en una fila en particular. Si una de las columnas es nula, quiero que se devuelva el valor en la otra columna para esa fila, ya que esa es la columna no nula más baja en este caso. Si utilizo la función menos() en MySQL 5.1:¿Cómo encontrar la columna menos nula en una fila en particular en SQL?
select least(1,null)
Esto devuelve null, que no es lo que quiero. Necesito la consulta para devolver 1 en este caso.
he sido capaz de obtener el resultado que quiero, en general, con esta consulta:
select least(coalesce(col1, col2)) , coalesce(col2,col1))
Mientras col1 y col2 son ambos no nula coalescencia cada declaración devolverá un número, y la menor () trata de encontrar el más bajo.
¿Hay una manera más simple/más rápida de hacer esto? Estoy usando MySQL en esta instancia, pero las soluciones generales son bienvenidas.
más rápido? ¿Has determinado que sea lento? –
No lo han juzgado necesariamente lento, pero está llamando a 3 funciones en lugar de a una. Lo estoy usando en una orden por cláusula de una consulta, necesito ser lo más rápido posible. –