[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

③ 填充字符

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值