首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于空白(但非空)字段的COALESCE()

用于空白(但非空)字段的COALESCE()
EN

Stack Overflow用户
提问于 2012-11-06 00:05:20
回答 4查看 20K关注 0票数 19

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

我知道我可以在查询中编写一个if-then-else (CASE)语句来检查这一点,但是有没有一个很好的简单函数,比如COALESCE(),用于处理空白但不为空的字段?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-06 00:11:11

代码语言:javascript
复制
SELECT IFNULL(NULLIF(Field1,''),Field2)

如果Field1为空,则返回NULL;如果不为空或为NULL,则返回Field1;否则返回Field2。

票数 30
EN

Stack Overflow用户

发布于 2013-11-23 03:11:40

我知道我来晚了,但是有一种方法可以做到这一点,同时仍然使用COALESCE()。如果你的值是NULL或'‘,这将会起作用。

代码语言:javascript
复制
Select COALESCE(NULLIF(Field1,''), Field2)
票数 8
EN

Stack Overflow用户

发布于 2012-11-06 00:11:43

您可以使用CASE表达式:

代码语言:javascript
复制
CASE WHEN Field1 <> '' THEN Field1 ELSE Field2 END
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13235847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档