跳到主要内容

rpad:右填充

速查结论

rpad(str, len[, pad]) 是 Spark SQL 中用于将字符串右填充到指定长度的函数。

语法

rpad(str, len[, pad])

参数说明

参数类型说明
strSTRING源字符串表达式
lenINT目标长度。如果 str 的长度超过 len,则返回值将被截短至 len 个字符
padSTRING可选。用于填充的字符串。如果未指定,字符字符串默认用空格填充,二进制字符串默认用零填充

示例

> 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真题

交流微信二维码

你可能还想看