You need to enable JavaScript to run this app. SQL中如何根据字符串长度拼接字符生成固定长度的Updated_Ref_No
优惠活动
大模型
产品
解决方案
定价
更多

SQL中如何根据字符串长度拼接字符生成固定长度的Updated_Ref_No

最优SQL实现方案

需求的核心是将Ref_No字段右补#到固定8位,直接使用数据库原生的右填充内置函数是最优方案,相比手动计算长度拼接的写法性能更高,代码也更简洁。

兼容大部分主流数据库的写法

支持RPAD函数的数据库(MySQL、PostgreSQL、Oracle、SQL Server 2012及以上版本)可以直接用以下查询:

SELECT
  Owner_Name,
  Ref_No,
  RPAD(Ref_No, 8, '#') AS Updated_Ref_No
FROM `owner`;

逻辑说明

RPAD函数三个参数的作用分别是:

  • 第一个参数:要处理的原始字符串,这里是Ref_No
  • 第二个参数:填充后的总长度,这里固定为8
  • 第三个参数:用来填充的字符,这里是#
    完全匹配需求的拼接规则,执行后输出结果和预期完全一致。

低版本SQL Server兼容写法

如果使用的是不支持RPAD函数的低版本SQL Server,可以用REPLICATE函数生成指定数量的#手动拼接:

SELECT
  Owner_Name,
  Ref_No,
  Ref_No + REPLICATE('#', 8 - LEN(Ref_No)) AS Updated_Ref_No
FROM [owner];

特殊场景补充

如果业务要求Ref_No长度超过8位时不截断、保留原始内容,可以增加条件判断,以MySQL为例:

SELECT
  Owner_Name,
  Ref_No,
  IF(LENGTH(Ref_No) > 8, Ref_No, RPAD(Ref_No, 8, '#')) AS Updated_Ref_No
FROM `owner`;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 08:27:04