PostgreSQL 业务-预制菜(不定时更新)

功能:分割字段逗号前后的值,并替换‘-’符号。

假设你有一个名为 employees 的表,其中包含以下字段:

  • full_name:包含值如 "AAA-BBB,CCC-DDD" 的字段。
  • status:包含值 "Y" 或 "N" 的字段,用于决定取值逻辑。

你可以使用以下 SQL 查询来获取处理后的值:

SELECT
    CASE
        WHEN status = 'Y' THEN
            replace(split_part(full_name, ',', 1), '-', '')
        WHEN status = 'N' THEN
            replace(split_part(full_name, ',', 2), '-', '')
    END AS processed_name
FROM employees;

查询解释

  • employees:这是你的表名。
  • full_name:这是包含名字和姓氏的字段,格式为 "FirstName-LastName,FirstName-LastName"
  • status:这是一个字段,其值决定是取 full_name 字段中的第一个还是第二个名字。
  • split_part(full_name, ',', 1):这个函数取 full_name 字段中第一个逗号之前的部分。
  • split_part(full_name, ',', 2):这个函数取 full_name 字段中第一个逗号之后的部分。
  • replace 函数用于去掉字符串中的连字符 '-'
  • CASE 语句根据 status 字段的值决定是取逗号前的字符串还是逗号后的字符串,并去掉连字符。
  • processed_name:这是为最终结果列命名的别名。

假设 employees 表包含以下数据:

full_namestatus
"AAA-BBB,CCC-DDD""Y"
"EEE-FFF,GGG-HHH""N"

示例结果

执行上述 SQL 查询后,你将得到以下结果:

processed_name
"AAACCC"
"FFFGGG"

这样,你就可以在你的博客中清晰地展示如何根据不同的条件从字段中提取和处理字符串。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值