sql >> Base de Datos >  >> RDS >> Oracle

SQL Seleccionando el valor MIN de los datos de la fila con valores nulos

Parece que quieres algo como

SELECT least( (case when col1 is null or col1 = 0 then 999999999 else col1 end),
              (case when col2 is null or col2 = 0 then 999999999 else col2 end),
              (case when col3 is null or col3 = 0 then 999999999 else col3 end) )
  FROM <<table name>>

donde 999999999 es un valor numérico lo suficientemente grande como para que siempre sea mayor que cualquier otro valor válido. Si es posible que las tres columnas tengan NULL o 0 valores, entonces probablemente querrá agregar una verificación adicional de que si el resultado de ese least la función es 999999999 que devuelve 0 o NULL o cualquier otra cosa que tenga sentido.

@X-Zero tuvo la amabilidad de armar un ejemplo de SQL Fiddle en funcionamiento de esta construcción. Tenga en cuenta que su ejemplo está filtrando las filas donde las tres columnas tienen NULL o 0 valores.