You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过substr与split_part生成姓名首字母缩写?

姓名转首字母缩写的SQL实现

针对你需要将任意长度的空格分隔姓名转换为M.P.H格式首字母缩写的需求,用数组拆分+聚合的方式可以完美避免硬编码,以下是PostgreSQL环境下的具体实现:

-- 假设你的姓名字段名为full_name,替换成实际字段名即可
SELECT string_agg(upper(substr(name_part, 1, 1)), '.') AS initials
FROM unnest(string_to_array(full_name, ' ')) AS name_part
WHERE name_part <> '';

代码解释:

  • string_to_array(full_name, ' '):把姓名按空格拆分为数组,比如Marco Peter Hanson会变成['Marco', 'Peter', 'Hanson']
  • unnest(...):将数组展开为单独的行,每个姓名部分占一行
  • substr(name_part, 1, 1):提取每个姓名部分的第一个字符
  • upper(...):将首字母转为大写(如果不需要大写可以去掉)
  • string_agg(..., '.'):把所有首字母用.连接成最终的缩写格式
  • WHERE name_part <> '':过滤掉因连续空格产生的空字符串,避免出现多余的.

测试场景验证:

  • 输入Marco Peter → 输出M.P
  • 输入Maro Peter Hanson Brad → 输出M.P.H.B
  • 输入Marco Peter Hanson(含连续空格)→ 输出M.P.H

内容的提问来源于stack exchange,提问作者MOR_SNOW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 09:57:06