COALESCE()表示空白(但不是空)字段

时间:2012-11-05 16:05:20

标签: mysql sql coalesce

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

我知道我可以在查询中编写一个if-then-else(CASE)语句来检查这个,但是对于空白但非空字段,是否有一个很好的简单函数,如COALESCE()? / p>

4 个答案:

答案 0 :(得分:26)

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

如果Field1为空,则NULLIF返回NULL,而如果Iso1不为空,则IFNULL返回Field1,否则返回Field2。

答案 1 :(得分:6)

您可以使用CASE表达式:

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

答案 2 :(得分:6)

我知道我在这里参加派对已经很晚了,但是在使用COALESCE()的同时还有办法做到这一点。如果您的值为NULL或''。

,则可以使用此功能
Select COALESCE(NULLIF(Field1,''), Field2)

答案 3 :(得分:0)

使用 CASE,用于比较 NULL 和 Blank。

SELECT CASE 
        WHEN Field1 IS NULL
            OR LEN(LTRIM(RTRIM(Field1))) < 1
            THEN Field2
        ELSE Field1
        END;

比较空白,不要使用'',使用LEN、LTRIM、RTRIM。有时,空白可能包含多个空格。

相关问题