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

Oracle SQL格式化姓名为姓氏空格首字母加句点的实现方法

Oracle SQL 姓名格式修正方法

你的查询结果数据正确,仅姓名拼接段缺少两个必填格式字符:姓氏与名首字母间的半角空格、名首字母后的半角句点,调整字符串拼接逻辑即可满足要求。

Oracle SQL中做字符串拼接时,用||运算符比嵌套CONCAT函数更直观,非常适合新手使用,修改后可直接运行的完整SQL如下:

SELECT
  UPPER(LAST_NAME) || ' ' || UPPER(SUBSTR(FIRST_NAME, 1, 1)) || '.' AS "Student Name",
  PHONE
FROM STUDENT s 
WHERE PHONE LIKE '203%'
ORDER BY LAST_NAME

拼接逻辑说明

姓名段的拼接完全匹配「大写姓氏 名首字母.」的格式要求,逐段对应:

  • UPPER(LAST_NAME):将姓氏字段转为全大写
  • || ' ':拼接姓氏与首字母之间要求的空格
  • UPPER(SUBSTR(FIRST_NAME, 1, 1)):提取名字字段的第一个字符,转为大写
  • || '.':拼接首字母末尾要求的句点

如果你一定要用CONCAT函数实现,注意Oracle原生CONCAT一次仅支持传入2个参数,必须多层嵌套才能完成多段拼接,写法更繁琐(不推荐新手使用):

SELECT
  CONCAT(
    CONCAT(
      CONCAT(UPPER(LAST_NAME), ' '),
      UPPER(SUBSTR(FIRST_NAME, 1, 1))
    ),
    '.'
  ) AS "Student Name",
  PHONE
FROM STUDENT s 
WHERE PHONE LIKE '203%'
ORDER BY LAST_NAME

补充:如果表中存在同姓学生,可以在ORDER BY子句后追加, FIRST_NAME,让字母排序的结果更严谨。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:24:19