首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在postgresql中拆分字符串,如果为空则返回另一个字符串

如何在postgresql中拆分字符串,如果为空则返回另一个字符串
EN

Stack Overflow用户
提问于 2022-03-22 15:54:02
回答 1查看 266关注 0票数 1

我有一个列,我需要根据':‘之前和后面的内容分成两个。如果没有“:”,我需要第二栏读“无”。

示例:

original_a:美国的困倦:为什么我们累了,该怎么办?标题:美国的困倦,副标题:为什么我们累了,该怎么办?

original_b:冥想与谈话治疗标题:冥想与谈话治疗副标题:“无”

我尝试了一个子查询

代码语言:javascript
运行
复制
SELECT headline, 
       CASE WHEN subtitle = ' ' THEN 'None' ELSE subtitle END as subtitle
FROM ( 
     SELECT split_part(headline, ':', 1) as headline, split_part(headline, ':', 2) as subtitle
     FROM table) as subquery

这可以很好地拆分原来的列,但是在没有第二部分时不会返回“None”。

我该如何返回“无”?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-22 16:00:06

一个简单的包含空结果的聚结如何?

COALESCE在其参数中返回第一个非空值。

如果两个参数匹配,NULLIF将返回NULL。

代码语言:javascript
运行
复制
SELECT 
 SPLIT_PART(headline, ':', 1) AS headline
,COALESCE(NULLIF(SPLIT_PART(headline, ':', 2), ''), 'None') AS subtitle
FROM table

你可以看到它在运行这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71575118

复制
相关文章

相似问题

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