rpad:右填充
速查结论
rpad(str, len[, pad]) 是 Spark SQL 中用于将字符串右填充到指定长度的函数。
语法
rpad(str, len[, pad])
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| str | STRING | 源字符串表达式 |
| len | INT | 目标长度。如果 str 的长度超过 len,则返回值将被截短至 len 个字符 |
| pad | STRING | 可选。用于填充的字符串。如果未指定,字符字符串默认用空格填充,二进制字符串默认用零填充 |
示例
> SELECT rpad('hi', 5, '??');
hi???
> SELECT rpad('hi', 1, '??');
h
> SELECT rpad('hi', 5);
hi
> SELECT hex(rpad(unhex('aabb'), 5));
AABB000000
> SELECT hex(rpad(unhex('aabb'), 5, unhex('1122')));
AABB112211
常见报错与避坑指南
- str 长度超过 len 时会被截断:
rpad('hello', 3, '?')返回hel(截短),而不是hello。这与某些直觉相反——填充函数也可能截断数据。 - pad 字符串会被重复拼接:如果指定的 pad 字符串不足以填满剩余长度,
rpad会重复拼接 pad 字符串,而不是只使用一次。例如rpad('hi', 5, '?')返回hi???。 - 默认填充字符的差异:字符字符串默认用空格填充,但显示时空格不可见。使用
SELECT concat(rpad('hi', 5), '|')可以验证尾部空格的存在。
Since: 1.5.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

💬加群交流
备注「数据仓库技术」加入社群,每日一道大厂SQL真题
