PostgreSQL format() 函数使用指南
PostgreSQL format()
函数根据指定的格式字符串和参数返回一个格式化的字符串。
format()
语法
这是 PostgreSQL format()
函数的语法:
format(format_str, [param1[, param2] ...])
参数
-
format_str
必需的。 一个格式字符串。这个格式字符串中可能包含多个格式说明符。格式说明符采用下面的形式:
%[position][flags][width]type
格式说明符由
%
开始,由类型结束,中间有 3 个可选的参数position
,flags
, 和width
:-
position
可选的。 它用来指明要使用的哪一个参数。它采用
N$
这样的形式,其中N
是一个数数字。N
从 1 开始,1 意味着format_str
之后的第一个参数。如果不指定,默认是使用参数列表中的下一个参数。 -
flags
可选的。 与宽度选项搭配使用。目前仅支持一个符号:减号(
-
),它表示输出左对齐。未指定宽度时,不起作用。 -
width
可选的。它用来设置此格式说明符输出的最少字符数。根据
flag
的设定,对输出进行左侧填充或右侧填充空格。如果指定的宽度小于参数的宽度,则不起任何作用。这个参数可以使用下列中的任何一个:
- 一个正整数值
- 一个星号 (
*
) 使用下一个函数参数作为宽度 - 一个格式为
*n$
的字符串,用于使用第 n 个函数参数作为宽度。
-
type
必须的。 指定格式说明符的输出的类型。支持下列的类型:
s
将参数值的格式设置为简单字符串。空值被视为空字符串。I
将参数值视为 SQL 标识符,必要时对其进行双引号包围。值为 null 是错误的L
将参数值引起来作为 SQL 文本。空值显示为字符串NULL
,不带引号
-
-
param1...
可选的。 格式字符串中的格式说明符引用的参数。如果参数多于格式说明符,则会忽略额外的参数。参数的数量是可变的,可能为零。
返回值
PostgreSQL format()
函数根据指定的格式字符串和参数返回一个格式化的字符串。
format()
示例
基本用法
这个示例说明了如果使用 PostgreSQL format()
函数格式化输出一个字符串。
SELECT format('Hello %s', 'World') AS "format('Hello %s', 'World')";
format('Hello %s', 'World')
-----------------------------
Hello World
这个实例说明了如何使用 PostgreSQL format()
函数格式化输出多个参数。
SELECT format('This is %s, he is %s years old.', 'Tim', 20);
format
----------------------------------
This is Tim, he is 20 years old.
对于同一格式字符串,您可以轻松的修改参数来输出另一个不同的内容。如下:
SELECT format('This is %s, he is %s years old.', 'Tom', 18);
format
----------------------------------
This is Tom, he is 18 years old.
参数的位置
您可以在格式说明符中指定使用参数的索引位置,如下:
SELECT format('Reserve arguments: %3$s, %2$s, %1$s', 'A', 'B', 'C');
format
----------------------------
Reserve arguments: C, B, A
宽度
本示例展示了如何使用 PostgreSQL format()
函数在一个字符串左侧填充空格使其宽度达到 10。
SELECT format('|%10s|', 'foo');
format
--------------
| foo|
以下的语句可以达到相同的目的:
SELECT format('|%*s|', 10, 'foo');
本示例展示了如何使用 PostgreSQL format()
函数在一个字符串右填充空格使其宽度达到 10。
SELECT format('|%-10s|', 'foo');
format
--------------
|foo |
以下的语句可以达到相同的目的:
SELECT format('|%*s|', -10, 'foo');
SELECT format('|%-*s|', 10, 'foo');