如何将字符串补全至固定长度并在末尾填充'x'?
解决字符串末尾填充'x'至固定长度的问题
嘿,我来帮你搞定这个需求!你现在想要的是把BARCGB22后面补x,凑够11位得到BARCGB22XXX,对吧?
原来的SQL是把大量x放在目标字符串前面,再取右11位,所以会出现前面补x的情况。要实现末尾补x,可以用这两种方法:
通用SQL写法(适配多数数据库)
把目标字符串放在前面,拼接足够多的x,再用left()截取前11位就行:
select left('BARCGB22' + 'XXXXXXXXXXX', 11)
原理很简单:BARCGB22本身是8个字符,加上11个x后总长度是19,取左11位就会保留原字符串的8位,再补上后面3个x,刚好凑够11位。
数据库原生函数写法(更简洁)
如果你的数据库支持RPAD()函数(比如MySQL、PostgreSQL、Oracle等),直接用这个函数更省事,它专门用来在字符串右侧填充指定字符到目标长度:
select rpad('BARCGB22', 11, 'x')
这个函数的参数逻辑很直观:第一个是需要处理的原字符串,第二个是你想要的固定长度,第三个是用来填充的字符,执行后直接就能得到BARCGB22XXX。
内容的提问来源于stack exchange,提问作者JJ.
相关产品推荐
相关产品推荐

