SQL如何实现仅当字段非空时执行条件concat拼接操作?
解决方案
你可以通过条件判断语句实现仅当logourl不为空时才执行拼接,以下是不同场景的实现方式:
- 通用SQL写法(兼容所有主流数据库)
使用CASE WHEN做非空判断,空值时直接返回NULL或者你需要的默认值即可:
如果你希望空值时返回其他业务默认值,把select blah, blah2, blah3, case when g.logourl is not null and g.logourl != '' then concat('https://my_url.com', g.logourl) else null end as logourlelse null部分替换为对应内容即可。 - 兼容MySQL、PostgreSQL等支持
IF函数的数据库简化写法select blah, blah2, blah3, if(g.logourl is not null and g.logourl != '', concat('https://my_url.com', g.logourl), null) as logourl - 额外说明:如果确认你的库中
logourl空值只会存储为NULL、不会出现空字符串,可以去掉判断条件里的and g.logourl != ''部分。
内容的提问来源于stack exchange,提问作者Lostsoul
相关产品推荐
相关产品推荐

