mysql sql coalesce

mysql - COALESCE() para campos en blanco(pero no nulos)



coalesce sql (3)

Puedes usar una expresión CASE :

CASE WHEN Field1 <> '''' THEN Field1 ELSE Field2 END

Tengo dos campos que estoy comparando con la función COALESCE() MySQL. Por ejemplo, COALESCE(Field1, Field2) . El problema es que Field1 a veces está en blanco pero no es nulo; ya que no es nulo, COALESCE() selecciona Campo1, aunque COALESCE() blanco. En ese caso, lo necesito para seleccionar Field2.

Sé que puedo escribir una sentencia if-then-else (CASE) en la consulta para verificar esto, pero ¿hay una función simple y agradable como COALESCE() para los campos en blanco pero no en nulo?


Sé que llego tarde a la fiesta aquí, pero hay una manera de hacerlo mientras todavía uso COALESCE (). Esto funcionaría si su valor fuera NULL o ''''.

Select COALESCE(NULLIF(Field1,''''), Field2)


SELECT IFNULL(NULLIF(Field1,''''),Field2)

NULLIF devuelve un NULL si Field1 está en blanco, mientras que IFNULL devuelve Field1 si no está en blanco o NULL y Field2 de lo contrario.