我想连接字符串左侧和右侧的空白值。我正在使用lpad和rpad命令并连接它们但我无法将空白值连接到左侧。以下示例查询:
select lpad('',5,0)||rpad(city_name,20) from city;
输出:Beaverton-11空格连接在一起。
任何人都可以建议我上述查询的最佳解决方案。
答案 0 :(得分:1)
我想连接a左侧和右侧的空白值 字符串。
使用此:
select lpad(' ',5)||rpad(city_name ,20) from city;
我发现您正试图在表达式'0'
中填充lpad('',5,0)
。
如果这是你想要的,你可以使用
lpad(0,5,0)
答案 1 :(得分:1)
奇怪的是,文档没有说明当第一个参数为null
时LPAD的返回值是什么。如您所知,在这种情况下,返回值为null
。
第三个参数必须是某些字符数据类型。你正在传递0,Oracle会将兄弟big转换为字符串'0'。但这不是你想要的。
生成五个空格的正确方法是,正如Kaushik Nayak在另一个答案中所示:lpad(' ', 5)
。第三个参数的默认值是空格,因此您无需添加它。
但是,对于整个查询,最简单的答案是lpad rpad的结果,如下所示:
select lpad( rpad(city_name, 20) , 25 ) from ....
现在城市名称右边填充到长度为20,结果前面有五个空格(使长度从20增加到25)。
为了让未来的开发人员更容易,您甚至可以编写20 + 5
而不是25 - 以明确意图是在左侧添加另外五个字符(默认为空格)( L pad)RPAD的结果。
答案 2 :(得分:0)
据我所知,您需要在城市名称前使用4个空格,在城市名称后使用5个空格,因此您可以使用以下内容;使用以下代码
select lpad(city_name, length(city_name)+4,' ')||rpad(' ', 4, ' ') from city;