Mysql COALESCE()用于空白(但不是null)字段

Mysql COALESCE()用于空白(但不是null)字段,mysql,sql,coalesce,Mysql,Sql,Coalesce,我有两个字段与MySQL的函数进行比较。例如,合并(Field1,Field2)。问题是,字段1有时是空的,但不是空的;因为它不是空的COALESCE()选择Field1,即使它是空的。在这种情况下,我需要它来选择Field2 我知道我可以在查询中编写if-then-else(CASE)语句来检查这一点,但是对于空白但非空的字段是否有类似COALESCE()这样的简单函数 SELECT IFNULL(NULLIF(Field1,''),Field2) 如果Field1为空,则NULLIF返回N

我有两个字段与MySQL的函数进行比较。例如,
合并(Field1,Field2)
。问题是,字段1有时是空的,但不是空的;因为它不是空的
COALESCE()
选择Field1,即使它是空的。在这种情况下,我需要它来选择Field2

我知道我可以在查询中编写if-then-else(CASE)语句来检查这一点,但是对于空白但非空的字段是否有类似
COALESCE()
这样的简单函数

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

如果Field1为空,则NULLIF返回NULL;如果字段1不为空,则IFNULL返回Field1;否则返回NULL和Field2

您可以使用
大小写
表达式:

CASE WHEN Field1 <> '' THEN Field1 ELSE Field2 END
字段1“”然后字段1 ELSE字段2结束时的情况

我知道我在这里的聚会迟到了,但是有一种方法可以在仍然使用COALESCE()的情况下做到这一点。如果您的值为NULL或“”,则这将起作用


这就是我所说的如果,那么,否则;我在寻找一种更清洁的单线解决方案,我也可以这样做,但使用COALESCE正确吗
COALESCE(NULLIF(Field1',),Field2)
-是否存在速度/处理负载差异?关于
COALESCE
vs
IFNULL
的有趣响应:请参见所选答案上的注释:)好了!我没看到。
Select COALESCE(NULLIF(Field1,''), Field2)