暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

pg学习之-format

原创 游湖 2022-12-19
2047

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');

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论