九月 22, 2023
摘要:PostgreSQL 的LPAD()
函数用字符序列将一个字符串左侧填充到指定长度。
目录
语法
下面说明了LPAD()
函数的语法:
LPAD(string, length[, fill])
参数
LPAD()
函数接受 3 个参数:
1) string
string
是一个应该在左侧填充的字符串。
2) length
length
是一个正整数,指定填充后结果字符串的长度。
请注意,如果字符串比length
参数长,则字符串将在右侧被截断。
3) fill
fill
是用于填充的字符串。
fill
参数是可选的。如果省略fill
参数,则其默认值为空格。
返回值
PostgreSQL 的LPAD()
函数返回一个左侧填充到length
个字符的字符串。
示例
让我们看一些使用LPAD()
函数的示例。
以下语句使用LPAD()
函数在字符串 ‘PostgreSQL’ 左侧填充 ‘*’:
SELECT LPAD('PostgreSQL',15,'*');
结果是:
lpad
----------------
*****PostgreSQL
(1 row)
在此示例中,PostgreSQL 字符串的长度为 10,结果字符串的长度应为 15,因此,LPAD()
函数在字符串左侧填充 5 个字符*
。
请参见示例数据库中的customer
和payment
表,如下:
以下语句说明了如何使用LPAD()
函数,根据每个客户的付款总额绘制图表。
SELECT first_name || ' ' || last_name fullname,
SUM(amount) total,
LPAD('*', CAST(TRUNC(SUM(amount) / 10) AS INT), '*') chart
FROM payment
INNER JOIN customer using (customer_id)
GROUP BY customer_id
ORDER BY SUM(amount) DESC;
下图说明了结果:
在这个例子中,
- 首先,我们使用 SUM() 函数和
GROUP BY
子句将每个客户的付款相加, - 其次,我们使用各种函数根据付款总额计算条形图的长度:用
TRUNC()
截断付款总额,用CAST()
将TRUNC()
结果转换为整数。为了使条形图更易于阅读,我们将付款总额除以 10。 - 第三步,我们根据上面第二步的结果应用
LPAD()
函数来填充字符 (*)。
在本教程中,您学习了如何使用 PostgreSQL 的LPAD()
函数,在字符串左侧填充字符到一定长度。
了解更多
PostgreSQL 教程:字符串函数
PostgreSQL 文档:字符串函数和操作符