Oracle LPAD函数详解

LPAD 是 Oracle 中一个非常实用的字符串函数,主要用于格式化输出。它的核心功能是在一个字符串的左侧填充指定的字符,使其总长度达到你设定的目标值。

📝 语法与参数

LPAD 函数的标准语法如下:

sql

复制代码
LPAD(expr1, n [, expr2])

它包含三个参数:

参数 说明
expr1 (必需) 需要被填充的原始字符串。
n (必需) 填充操作完成后,返回的总长度
expr2 (可选) 用于填充的字符序列。如果省略,默认使用一个空格进行填充。

⚙️ 工作原理与核心规则

LPAD 的工作逻辑遵循几条清晰的规则:

  1. 左侧填充 :函数会在 expr1 的左侧反复添加 expr2 中的字符,直到整个字符串的长度达到 n。
  2. 默认填充符 :如果未指定 expr2,则默认使用一个空格(' ')进行填充。
  3. 原始字符串过长 :如果 expr1 的长度已经大于 n,那么 LPAD 函数不会进行填充 ,而是直接截取并返回expr1最左边的 n个字符
  4. 填充字符过长 :如果 expr2 的长度大于所需填充的长度,它会被从左到右截断,只使用其最左边的一部分来完成填充。
  5. 关于 NULL :在标准 Oracle SQL 中,如果 expr1 或 expr2 为 NULL,函数结果通常为 NULL。如果 n 小于或等于 0,结果也通常为 NULL。
  6. 数据类型 :expr1 和 expr2 支持 CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, NCLOB 等字符类型。返回值类型与 expr1 保持一致。

💡 常见使用示例

1.基础填充与默认填充符

sql

复制代码
--使用默认空格将'tech'填充到长度为7
复制代码
SELECT LPAD('tech', 7) FROM DUAL;
复制代码
--结果: ' tech' (前面有3个空格)

2.使用特定字符填充

sql

复制代码
--使用'0'将'123'填充到长度为5
复制代码
SELECT LPAD('123', 5, '0') FROM DUAL;
复制代码
--结果: '00123'