当前位置: 首页 > news >正文

[Oracle] LPAD()和RPAD()函数

LPAD() RPAD() 是 Oracle 中用于字符串填充的两个重要函数,它们可以分别在字符串的左侧、右侧填充指定的字符,使字符串达到指定的长度

1.LPAD()函数(左填充函数)

LPAD()函数在字符串的左侧填充指定的字符,直到字符串达到指定的长度

语法格式

LPAD(padded_str, length, pad_string)

参数说明
padded_str:要填充的原始字符串
length:填充后字符串的总长度
pad_string:可选,用于填充的字符串(默认为单个空格)

示例

-- 左侧填充空格到10位(默认填充字符为空格)
SELECT LPAD('Oracle', 10) FROM dual;  -- '    Oracle'-- 左侧填充'*'到10位
SELECT LPAD('Oracle', 10, '*') FROM dual;  -- '****Oracle'-- 左侧填充多个字符
SELECT LPAD('123', 8, 'AB') FROM dual;  -- ABABA123-- 格式化员工工号(左侧补零到6位)
-- 示例结果: 101 → '000101'
SELECT employee_id, LPAD(employee_id, 6, '0') AS formatted_id
FROM employees;-- 生成固定长度的报告标题
-- 结果: '================销售报告 2025-08-06'
SELECT LPAD('销售报告', 20, '=') || ' ' || TO_CHAR(SYSDATE, 'YYYY-MM-DD')
FROM dual;

2.RPAD()函数(右填充函数)

RPAD()函数在字符串的右侧填充指定的字符,直到字符串达到指定的长度

语法格式

RPAD(padded_str, length, pad_string)

参数说明
padded_str:要填充的原始字符串
length:填充后字符串的总长度
pad_string:可选,用于填充的字符串(默认为单个空格)

示例

-- 右侧填充空格到10位(默认填充字符为空格)
SELECT RPAD('Oracle', 10) FROM dual;  -- 'Oracle    '-- 右侧填充'*'到10位
SELECT RPAD('Oracle', 10, '*') FROM dual;  -- 'Oracle****'-- 右侧填充多个字符
SELECT RPAD('123', 8, '+-') FROM dual;  -- '123+-+-+'-- 格式化产品代码(右侧补X到10位)
-- 示例结果: 'A1' → 'A1XXXXXXXX'
SELECT product_code, RPAD(product_code, 10, 'X') AS formatted_code
FROM products;

LPAD()和RPAD()函数的共同特性

① 长度处理规则

如果原始字符串长于指定长度,函数会截断字符串到指定长度

SELECT LPAD('Oracle', 4) FROM dual;  -- 'Orac'
SELECT RPAD('Oracle', 4) FROM dual;  -- 'Orac'

② NULL值处理

如果输入字符串为NULL,结果也是NULL

SELECT LPAD(NULL, 10, '*') FROM dual;  -- NULL
SELECT RPAD(NULL, 10, '*') FROM dual;  -- NULL

③ 填充字符

可以是一个字符或多个字符(多字符时会循环使用);如果省略,默认为单个空格

http://www.dtcms.com/a/318356.html

相关文章:

  • Python实现电商商品数据可视化分析系统开发实践
  • 一、Istio基础学习
  • 自定义报表调研
  • 居家养老场景下摔倒识别准确率提升 29%:陌讯动态姿态建模算法实战解析
  • JuiceFS存储
  • C++实现线程池(5)计划线程池
  • Redis知识学习
  • 深度解析:AI如何重塑供应链?从被动响应到预测性防御的三大核心实践
  • (Python)待办事项升级网页版(html)(Python项目)
  • 未解决|TransmittableThreadLocal 怎么用| 阿里线程池工具避免手动在传递MDC traceId
  • 数字取证和网络安全:了解两者的交叉点和重要性
  • 《爬虫实战指南:轻松获取店铺详情,开启数据挖掘之旅》
  • 【网络基础】计算机网络发展背景及传输数据过程介绍
  • cad c#二次开发 图层封装 获取当前层
  • 《第十一篇》深入解析 `embedding.py`:基于 SiliconFlow API 的文本向量化服务
  • 《算法导论》笔记——归并排序及循环不变式证明
  • [AI 生成] 大数据数仓面试题
  • 无人机共轴双桨动力测试-如何确认桨叶最优间距(效率/噪音/重量/尺寸)
  • 无人机航拍数据集|第3期 无人机军事目标目标检测YOLO数据集3556张yolov11/yolov8/yolov5可训练
  • 2025年高防IP隐身术:四层架构拆解源站IP“消失之谜”
  • 笔试——Day30
  • 吴声 2025 年度演讲:“场景革命十年”的多面审视,理念重复之嫌!
  • 笔记html模板
  • OpenHarmony源码解析之init进程
  • 题解:CF1453D Checkpoints
  • 看不见的伪造痕迹:AI时代的鉴伪攻防战
  • 微信小程序多媒体功能实现
  • n8n循环处理完全指南
  • 工业自动化中Modbus RTU转Profibus DP网关的应用与温度监控实现
  • 昇思+昇腾开发板:DeepSeek-R1-Distill-Qwen-1.5B 模型推理部署与 JIT 优化实践