Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果MySQL中返回的结果为空,请选择默认值_Mysql_Sql_Coalesce - Fatal编程技术网

如果MySQL中返回的结果为空,请选择默认值

如果MySQL中返回的结果为空,请选择默认值,mysql,sql,coalesce,Mysql,Sql,Coalesce,以下查询运行正常,但我想输入一个选项,即如果返回的电子邮件为空,则输入“example@google.com“或者类似的东西。我读过一些这样做的函数,比如COALESCE(电子邮件)example@google.com”,但我不确定该函数在脚本中的位置。你能告诉我应该在哪里注入这个函数吗?我的方向是否正确?谢谢你 SELECT LCASE(LOGIN_NAME) as uniqueid, CONCAT('sha-512:', PASSWD) as password, REPLACE(CONTAC

以下查询运行正常,但我想输入一个选项,即如果返回的电子邮件为空,则输入“example@google.com“或者类似的东西。我读过一些这样做的函数,比如
COALESCE(电子邮件)example@google.com”
,但我不确定该函数在脚本中的位置。你能告诉我应该在哪里注入这个函数吗?我的方向是否正确?谢谢你

SELECT LCASE(LOGIN_NAME) as uniqueid, CONCAT('sha-512:', PASSWD) as password, REPLACE(CONTACT_NAME, '"', '') as name, \
     CONCAT('unit,', \
       MAX(CASE WHEN USER_TYPE = 'custom' THEN  \
          'location_employee'  \
        WHEN (LOGIN_NAME != 'link' AND USER_TYPE = 'owner' AND (UA.PARTY_SITE_ID IS NULL OR NOT EXISTS (SELECT U2.ID FROM CUSTOMER_DATA.USER_ACCESS U2 WHERE U2.USER_ID=U.ID AND (U2.PARTY_SITE_ID IS NULL OR U2.PARTY_SITE_ID = '')) ) )THEN  \
          'master'  \
        ELSE  \
          'location'  \
        END)) AS role, \
     MAX(EMAIL) as email, \
     MAX(PHONE) as phone, \
     MAX(FAX) as fax \
     FROM ORACLE_EXPORTS.SHIP_TO ST, \
     CUSTOMER_DATA.USER U \
     JOIN CUSTOMER_DATA.USER_ACCESS UA ON U.ID = UA.USER_ID \
     WHERE ( \
     (UA.PARTY_SITE_ID IS NULL AND ST.CUSTOMER_ID = UA.CUSTOMER_ID ) \
     OR \
     (ST.PARTY_SITE_ID IS NOT NULL AND ST.PARTY_SITE_ID = UA.PARTY_SITE_ID ) \
     ) \
     AND U.LOGIN_NAME IN ( ? ) \
     GROUP BY LOGIN_NAME

那么,你想从哪里得到电子邮件呢

COALESCE(MAX(EMAIL), 'example@google.com') as email

使用MySQL的IFNULL函数

IFNULL(MAX(EMAIL), "example@google.com") as email

这并没有解决我的问题,直到我意识到我的空白字段实际上是一个空字符串。对于空字符串,这是有效的:
IFNULL(NULLIF(EMAIL),,“NULL”)
IFNULL(MAX(EMAIL), "example@google.com") as email