LPAD 是 Oracle 中一个非常实用的字符串函数,主要用于格式化输出。它的核心功能是在一个字符串的左侧填充指定的字符,使其总长度达到你设定的目标值。
📝 语法与参数
LPAD 函数的标准语法如下:
sql
LPAD(expr1, n [, expr2])
它包含三个参数:
| 参数 | 说明 |
|---|---|
| expr1 (必需) | 需要被填充的原始字符串。 |
| n (必需) | 填充操作完成后,返回的总长度。 |
| expr2 (可选) | 用于填充的字符序列。如果省略,默认使用一个空格进行填充。 |
⚙️ 工作原理与核心规则
LPAD 的工作逻辑遵循几条清晰的规则:
- 左侧填充 :函数会在 expr1 的左侧反复添加 expr2 中的字符,直到整个字符串的长度达到 n。
- 默认填充符 :如果未指定 expr2,则默认使用一个空格(' ')进行填充。
- 原始字符串过长 :如果 expr1 的长度已经大于 n,那么 LPAD 函数不会进行填充 ,而是直接截取并返回expr1最左边的 n个字符 。
- 填充字符过长 :如果 expr2 的长度大于所需填充的长度,它会被从左到右截断,只使用其最左边的一部分来完成填充。
- 关于 NULL值 :在标准 Oracle SQL 中,如果 expr1 或 expr2 为 NULL,函数结果通常为 NULL。如果 n 小于或等于 0,结果也通常为 NULL。
- 数据类型 :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'