gpt4 book ai didi

MySQL COALESCE 函数无法返回非空值

转载 作者:行者123 更新时间:2023-11-29 11:54:09 31 4
gpt4 key购买 nike

我有一个非常简单的 MySQL 查询:

SELECT m.REF_DATA_ID, COALESCE(m.SQL_FUNCTION, m.PHP_FUNCTION ) AS FUNCTION FROM AAB_REFERENCE_DATA_MANAGER m;

返回以下数据:

REF_DATA_ID | FUNCTION
88295 |
88296 |
88297 |
88298 | now()
88299 |
88300 | now()
88301 |

当我运行以下查询时,由于某种原因,COALESCE() 在我的查询中似乎无法正常运行:

SELECT m.REF_DATA_ID, m.SQL_FUNCTION, m.PHP_FUNCTION FROM AAB_REFERENCE_DATA_MANAGER m;

返回:

REF_DATA_ID  SQL_FUNCTION  PHP_FUNCTION
88295 | |
88296 | |
88297 | |
88298 | now() |
88299 | | get_session_user_id
88300 | now() |
88301 | | get_session_user_id

我只是不确定我在这里的 COALESCE 做错了什么......

我正在寻找的输出是:

REF_DATA_ID  FUNCTION
88295 |
88296 |
88297 |
88298 | now()
88299 | get_session_user_id
88300 | now()
88301 | get_session_user_id

最佳答案

空白字符串不是NULL(Oracle 中除外)。因此,进行更明确的比较:

SELECT m.REF_DATA_ID,
(CASE WHEN m.SQL_FUNCTION IS NULL OR
TRIM(m.SQL_FUNCTION) = ''
THEN m.PHP_FUNCTION
ELSE m.SQL_FUNCTION
END) AS FUNCTION
FROM AAB_REFERENCE_DATA_MANAGER m;

关于MySQL COALESCE 函数无法返回非空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33491013/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com