gpt4 book ai didi

mysql - 如何将 CONCAT_WS 与 COALESCE 一起使用?

转载 作者:行者123 更新时间:2023-11-29 04:14:46 24 4
gpt4 key购买 nike

我有一个表 users,其中包含字段 firstNamelastName。两者都可以为 NULL。

我想选择全名,其中之一,或者如果两者都没有设置则默认为字符串。我尝试了以下查询,但如果它们均为 NULL,则该值未设置为 Unnamed,而是生成一个空字符串。

SELECT COALESCE(CONCAT_WS(' ', firstName, lastName), 'Unnamed') AS fullName FROM users;

我不能使用CONCAT,因为如果只填其中一个名字,我希望返回单个名字,而CONCAT会返回NULL,如果其中一个值未设置。

只有当两列都为 NULL 时,我如何才能设置默认值?

最佳答案

对,如果两个字符串都是NULL,那么返回值就是分隔符,你设置为' '。因此,如果 CONCAT_WS() 的结果是 ' ',您可以将其转换为 NULL。

SELECT COALESCE(
NULLIF(CONCAT_WS(' ', firstName, lastName), ' '),
'Unnamed'
) AS fullName
FROM users;

关于mysql - 如何将 CONCAT_WS 与 COALESCE 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57749075/

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