↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 函数百科 / 字符串函数和操作符

FUNCTION字符串函数和操作符

upper

根据数据库的区域设置规则,将字符串转换为全部大写。

Converts the string to all upper case, according to the rules of the database's locale.

字符串函数和操作符 引入 7.1(基线) 现存至 20 devel 3 条签名 2 次签名变更

签名数
3 条
引入版本
7.1(基线)
状态
现存
签名变更
2 次
本版来源
英文原文

PostgreSQL 18.7 手册 · 9.4 字符串函数和操作符 官方文档

版本轨迹

相对 PostgreSQL 17 无变化。

说明

根据数据库的区域设置规则,将字符串转换为全部大写。
upper ( text ) → text
根据数据库的区域设置规则,将字符串转换为全部大写。
upper ( anyrange ) → anyelement
提取范围的上界(如果范围为空或没有上界,则返回 NULL)。
upper ( anymultirange ) → anyelement
提取多范围的上界(如果多范围为空或没有上界,则返回 NULL)。

签名

PostgreSQL 18.7 里 upper 的 3 条签名,按上游手册顺序排列。参数名用斜体,类型用弱化色, 之后是返回类型。中文说明来自同版本手册与审阅译文,悬停可查看每条说明的来源。

  1. upper ( text ) → text

    根据数据库的区域设置规则,将字符串转换为全部大写。
    • upper('tom')TOM
  2. upper ( anyrange ) → anyelement

    提取范围的上界(如果范围为空或没有上界,则返回 NULL)。
    • upper(numrange(1.1,2.2))2.2
  3. upper ( anymultirange ) → anyelement

    提取多范围的上界(如果多范围为空或没有上界,则返回 NULL)。
    • upper('{[1.1,2.2)}'::nummultirange)2.2

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的签名。

  1. PostgreSQL 14 ← 13 签名变更

    upper ( anymultirange ) → anyelement

  2. PostgreSQL 13 ← 12 手册重排

    这一跳手册重排了函数表的写法,签名文本整体改写,只记函数的增删,不逐条比较签名。

  3. PostgreSQL 9.2 ← 9.1 签名变更

    upper ( anyrange ) → range's element type

  4. PostgreSQL 9.0 ← 8.4 说明更新

    说明更新

  5. PostgreSQL 8.0 ← 7.4 说明更新

    说明更新

签名矩阵

每条签名在给出了签名的 27 个版本里的存在情况;方格指向该版的签名。只在正文里提到此函数、没有给出签名的版本不列进来,上面的版本轨迹里仍然有它们。签名文本在 PostgreSQL 13 前后写法不同,跨越那一跳的同一条签名会显示成两行。

存在 不存在

签名 7.17.27.37.48.08.18.28.38.49.09.19.29.39.49.59.61011121314151617181920
upper ( string ) → text 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在
upper ( anyrange ) → range's element type 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 存在 存在 存在 存在 存在 存在 存在 存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在
upper ( text ) → text 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 存在 存在 存在 存在 存在 存在 存在 存在
upper ( anyrange ) → anyelement 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 存在 存在 存在 存在 存在 存在 存在 存在
upper ( anymultirange ) → anyelement 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 存在 存在 存在 存在 存在 存在 存在

同组函数

函数 签名 主签名 版本变动 最近变更
STRING FUNCTIONS AND OPERATORS 字符串函数和操作符 58 个 ↗
ascii基线 1 ascii ( text ) → integer 8.22 次
返回参数的第一个字符的数字代码。在 UTF8 编码中,返回该字符的 Unicode 码点。在其他多字节编码中,该参数必须是一个 ASCII 字符。 现存
bit_length 3 bit_length ( text ) → integer 8.11 次
返回字符串中的位数(8 倍于 octet_length)。 现存
btrim基线 2 btrim ( string text [, characters text ] ) → text 8.04 次
从 string 的开头和结尾移除仅由 characters 中字符(默认为空格)组成的最长字符串。 现存
casefold 1 casefold ( text ) → text —
根据排序规则对输入字符串执行大小写折叠。大小写折叠与大小写转换类似,但其目的是方便字符串的不区分大小写匹配,而大小写转换的目的是将字符串转换为特定的大小写形式。此函数只能在服务器编码为 UTF8 时使用。 现存
char_length基线 1 char_length ( text ) → integer 8.11 次
返回字符串中的字符数。 现存
character_length基线 1 character_length ( text ) → integer 8.11 次
返回字符串中的字符数。 现存
chr基线 1 chr ( integer ) → text 8.11 次
返回给定代码的字符。在 UTF8 编码中该参数被视作一个 Unicode 码点。在其他多字节编码中该参数必须指定一个 ASCII 字符。chr(0) 字符不被允许,因为文本数据类型不能存储这种字符。 现存
concat 1 concat ( val1 "any" [, val2 "any" [, ...] ] ) → text —
串接所有参数的文本表示。NULL 参数被忽略。 现存
concat_ws 1 concat_ws ( sep text, val1 "any" [, val2 "any" [, ...] ] ) → text —
用分隔符串接除第一个参数外的所有参数。第一个参数用作分隔符字符串,不应为 NULL。其他 NULL 参数将被忽略。 现存
format 2 format ( formatstr text [, formatarg "any" [, ...] ] ) → text 9.31 次
根据格式字符串对参数进行格式化;参见第 9.4.1 节。这个函数类似于 C 函数 sprintf。 现存
getdatabaseencoding 1 getdatabaseencoding ( ) → name —
返回当前数据库的编码名称。 现存
initcap基线 1 initcap ( text ) → text 8.21 次
将每个单词的第一个字母转换为大写(如果该字母是二合字母,且区域设置为 ICU 或 builtin PG_UNICODE_FAST,则转换为标题大小写),其余字母转换为小写。使用 libc 或 builtin 区域设置提供者时,单词是由非字母数字字符分隔的字母数字字符序列;使用 ICU 区域设置提供者时,单词按 ICU 的 u_strToTitle 函数划分。 现存
left 1 left ( string text, n integer ) → text —
返回字符串最左侧的 n 个字符;如果 n 为负,则返回除最后 |n| 个字符之外的全部字符。 现存
length基线 6 length ( text ) → integer 9.16 次
返回字符串中的字符数。 现存
lower基线 3 lower ( text ) → text 142 次
根据数据库的区域设置规则,将字符串转换为全部小写。 现存
lpad基线 1 lpad ( string text, length integer [, fill text ] ) → text 8.11 次
在 string 前面添加字符 fill(默认为空格),将其填充到长度 length。如果 string 已经长于 length,则从右侧截断。 现存
ltrim基线 2 ltrim ( string text [, characters text ] ) → text 144 次
从 string 的开头移除仅由 characters 中字符(默认为空格)组成的最长字符串。 现存
md5 2 md5 ( text ) → text 8.22 次
计算参数的 MD5 hash,结果以十六进制形式写入。 现存
normalize 1 normalize ( text [, form ] ) → text —
将字符串转换为指定的 Unicode 规范化形式。可选的 form 关键字指定如下形式:NFC(默认值)、NFD、NFKC 或 NFKD。该函数只能在服务器编码为 UTF8 时使用。 现存
octet_length基线 4 octet_length ( text ) → integer 8.11 次
返回字符串的字节数。 现存
overlay 3 overlay ( string text PLACING newsubstring text FROM start integer [ FOR count integer ] ) → text 9.02 次
用 newsubstring 替换 string 中从第 start 个字符开始、长度为 count 个字符的子字符串。如果省略 count,则默认为 newsubstring 的长度。 现存
parse_ident 1 parse_ident ( qualified_identifier text [, strict_mode boolean DEFAULT true ] ) → text[] —
将 qualified_identifier 拆分为一个标识符数组,去除各个标识符的引号。默认情况下,最后一个标识符之后的额外字符被视为错误;但是,如果第二个参数为 false,则忽略这些额外的字符。(这种行为对于解析函数等对象的名称有作用。)请注意,此函数不会截断超长标识符。如果你想截断,你可以将结果转换为 name[]。 现存
pg_client_encoding 1 pg_client_encoding ( ) → name —
返回当前客户端编码名称。 现存
position基线 3 position ( substring text IN string text ) → integer 8.11 次
返回 substring 在 string 中首次出现的位置;如果不存在则返回零。 现存
quote_ident 1 quote_ident ( text ) → text 8.32 次
为给定字符串添加适当的引号并返回,使其可用作 SQL 语句字符串中的标识符。仅在必要时(即字符串包含不能用于标识符的字符,或会发生大小写折叠时)添加引号。内嵌的引号会被适当地双写。另见例 41.1。 现存
quote_literal 2 quote_literal ( text ) → text 8.32 次
为给定字符串添加适当的引号并返回,使其可用作 SQL 语句字符串中的字符串字面量。内嵌的单引号和反斜杠会被适当地双写。注意,quote_literal 在输入为 null 时返回 null;如果参数可能为 null,quote_nullable 通常更合适。另见例 41.1。 现存
quote_nullable 2 quote_nullable ( text ) → text —
为给定字符串添加适当的引号并返回,使其可用作 SQL 语句字符串中的字符串字面量;如果参数为 null,则返回 NULL。内嵌的单引号和反斜杠会被适当地双写。另见例 41.1。 现存
regexp_count 2 regexp_count ( string text, pattern text [, start integer [, flags text ] ] ) → integer 191 次
返回 POSIX 正则表达式 pattern 在 string 中匹配的次数;参见第 9.7.3.1.2 节。 现存
regexp_instr 2 regexp_instr ( string text, pattern text [, start integer [, N integer [, endoption integer [, flags text [, subexpr integer ] ] ] ] ] ) → integer 191 次
返回 POSIX 正则表达式 pattern 在 string 中第 N 次匹配的位置;如果没有这样的匹配,则返回零。参见第 9.7.3.1.3 节。 现存
regexp_like 2 regexp_like ( string text, pattern text [, flags text ] ) → boolean 191 次
检查 POSIX 正则表达式 pattern 是否在 string 中出现;参见第 9.7.3.1.4 节。 现存
regexp_match 2 regexp_match ( string text, pattern text [, flags text ] ) → text[] 191 次
返回 POSIX 正则表达式 pattern 与 string 的第一次匹配中的子字符串;参见第 9.7.3.1.5 节。 现存
regexp_matches 2 regexp_matches ( string text, pattern text [, flags text ] ) → setof text[] 191 次
返回 POSIX 正则表达式 pattern 与 string 的第一次匹配中的子字符串;如果使用 g 标志,则返回所有匹配中的子字符串。参见第 9.7.3.1.6 节。 现存
regexp_replace 4 regexp_replace ( string text, pattern text, replacement text [, flags text ] ) → text 194 次
替换第一个与 POSIX 正则表达式 pattern 匹配的子字符串,如果使用了 g 标志,则替换所有这样的匹配;参见第 9.7.3.1.7 节。 现存
regexp_split_to_array 2 regexp_split_to_array ( string text, pattern text [, flags text ] ) → text[] 191 次
使用 POSIX 正则表达式作为分隔符拆分 string,生成一个结果的数组;参见第 9.7.3.1.9 节。 现存
regexp_split_to_table 2 regexp_split_to_table ( string text, pattern text [, flags text ] ) → setof text 191 次
使用 POSIX 正则表达式作为分隔符拆分 string,生成一组结果;参见第 9.7.3.1.8 节。 现存
regexp_substr 2 regexp_substr ( string text, pattern text [, start integer [, N integer [, flags text [, subexpr integer ] ] ] ] ) → text 191 次
返回 string 中 POSIX 正则表达式 pattern 的第 N 次匹配对应的子字符串;如果没有这样的匹配,则返回 NULL。参见第 9.7.3.1.10 节。 现存
repeat基线 1 repeat ( string text, number integer ) → text 8.12 次
按 number 指定的次数重复 string。 现存
replace 1 replace ( string text, from text, to text ) → text —
将 string 中所有出现的子字符串 from 替换为子字符串 to。 现存
reverse 2 reverse ( text ) → text 181 次
颠倒字符串中字符的顺序。 现存
right 1 right ( string text, n integer ) → text —
返回字符串中的最后 n 个字符;如果 n 为负数,则返回除前 |n| 个字符之外的全部字符。 现存
rpad基线 1 rpad ( string text, length integer [, fill text ] ) → text 8.11 次
在 string 后面追加字符 fill(默认为空格),将其填充到长度 length。如果 string 已经长于 length,则截断它。 现存
rtrim基线 2 rtrim ( string text [, characters text ] ) → text 143 次
从 string 的结尾移除仅由 characters 中字符(默认为空格)组成的最长字符串。 现存
split_part 1 split_part ( string text, delimiter text, n integer ) → text 8.12 次
在出现 delimiter 时拆分 string,并返回第 n 个字段(从一开始计数);如果 n 为负数,则返回倒数第 |n| 个字段。 现存
starts_with 1 starts_with ( string text, prefix text ) → boolean —
如果 string 以 prefix 开始就返回真。 现存
string_to_array 1 string_to_array ( string text, delimiter text [, null_string text ] ) → text[] 9.11 次
将 string 按 delimiter 分割,并将结果字段形成 text 数组。如果 delimiter 是 NULL,则 string 中的每个字符将成为数组中的一个单独元素。如果 delimiter 是空字符串,则 string 被视为单个字段。如果提供了 null_string 且不是 NULL,则匹配该字符串的字段将被 NULL 替换。另请参见 array_to_string。 现存
string_to_table 1 string_to_table ( string text, delimiter text [, null_string text ] ) → setof text —
在出现 delimiter 时拆分 string,并将结果字段作为 text 行的集合返回。如果 delimiter 为 NULL,则 string 中的每个字符将成为结果的单独一行。如果 delimiter 为空字符串,则将 string 视为单个字段。如果提供了 null_string,并且不是 NULL,则匹配该字符串的字段将被 NULL 替换。 现存
strpos基线 1 strpos ( string text, substring text ) → integer 7.31 次
返回 substring 在 string 中首次出现的位置;如果不存在则返回零。(与 position(substring in string) 相同,但请注意参数顺序相反。) 现存
substr基线 2 substr ( string text, start integer [, count integer ] ) → text —
提取 string 中从第 start 个字符开始的子字符串;若指定了长度,则提取 count 个字符。(与 substring(string from start for count) 相同。) 现存
substring基线 11 substring ( string text [ FROM start integer ] [ FOR count integer ] ) → text 196 次
提取 string 的子字符串:若指定了起始位置,则从第 start 个字符开始;若指定了长度,则在提取 count 个字符后停止。start 和 count 至少需要指定一个。 现存
to_ascii基线 3 to_ascii ( string text ) → text 8.21 次
将 string 从其他编码转换为 ASCII,源编码可以用名称或编号指定。如果省略 encoding,则使用数据库编码(实际上,这也是唯一有用的情况)。转换主要是去除重音符号。只支持从 LATIN1、LATIN2、LATIN9 和 WIN1250 编码转换。(另一种更灵活的解决方案参见 unaccent 模块。) 现存
to_bin 2 to_bin ( integer ) → text —
将数字转换为等价的二进制补码表示。 现存
to_hex 2 to_hex ( integer ) → text 8.11 次
将数字转换为等价的二进制补码的十六进制表示。 现存
to_oct 2 to_oct ( integer ) → text —
将数字转换为等价的二进制补码的八进制表示。 现存
translate基线 1 translate ( string text, from text, to text ) → text —
将 string 中与 from 集合中匹配的每个字符替换为 to 集合中相应的字符。如果 from 长于 to,输入中出现的 from 中的额外字符会被删除。 现存
trim基线 4 trim ( [ LEADING | TRAILING | BOTH ] [ characters text ] FROM string text ) → text 144 次
从 string 的开始、末端或两端(默认为 BOTH)移除仅包含 characters(默认为空格)字符的最长字符串。 现存
unicode_assigned 1 unicode_assigned ( text ) → boolean —
如果字符串中的所有字符都是已分配的 Unicode 码点,则返回 true;否则返回 false。此函数只能在服务器编码为 UTF8 时使用。 现存
unistr 1 unistr ( text ) → text —
解析参数中转义的 Unicode 字符。Unicode 字符可以被指定为\XXXX(4 个十六进制数字),\+XXXXXX(6 个十六进制数字),\uXXXX(4 个十六进制数字),或\UXXXXXXXX(8 个十六进制数字)。要指定反斜杠,请写入两个反斜杠。所有其他字符均按字面解释。 现存
upper基线 3 upper ( text ) → text 142 次
根据数据库的区域设置规则,将字符串转换为全部大写。 现存