postgresql-字符函数

postgresql-字符函数

字符串连接

concat(str, ...)函数用于连接字符串,并且忽略其中的 NULL 参数;concat_ws(sep, str, ...)

函数使用指定分隔符 sep 连接字符串。

sql 复制代码
select concat(2, null, 22), concat_ws(' and ', 2, null, 22);

两个竖杠(||)也可以用于连接字符串,但是 NULL 参数将会返回 NULL。

sql 复制代码
SELECT 'Post'||'greSQL', 'Post'||NULL||'greSQL';

字符与编码

ascii(string)函数返回第一个字符的 ASCII 码。对于 UTF8 返回 Unicode 码;对于其他多字节

编码,参数必须是一个 ASCII 字符。

sql 复制代码
select ascii('x');


chr(int)函数返回编码对应的字符。对于 UTF8,参数指定的是 Unicode 码;对于其他多字节

编码,参数必须对应一个 ASCII 字符。参数不允许为 0(空字符),因为 text 数据类型不能存储

空字符

字符串长度

bit_length(string)函数用于计算字符串包含的比特数;length(string)char_length(string)
character_length(string)函数计算字符串包含的字符数;octet_length(string) 函数计算字符串包

含的字节数。

大小写转换

lower(string)函数将字符串转换为小写形式,
upper(string)函数将字符串转换为大写形式,
initcap(string)函数将每个单词的首字母大写,其他字母小写

子串查找与替换

substring(string [FROM] [for])函数用于提取从位置 FROM 开始的 for 个字符子串,位置从

1 开始计算。substr(string, FROM [, count])的作用相同。

left(str, n)函数返回字符串左边的 n 个字符。如果 n 为负数,返回除了最后|n|个字符之外的

所有字符
right(str, n)函数返回字符串右边的 n 个字符。如果 n 为负数,返回除了左边|n|个字符之外的

字符。

substring(string FROM pattern)函数提取匹配 POSIX 正则表达式的子串。
substring(string FROM pattern for escape)函数提取匹配 SQL 正则表达式的子串。

regexp_match(string, pattern [, flags])函数返回匹配 POSIX 正则表达式的第一个子串。

regexp_matches(string, pattern [, flags])函数返回匹配 POSIX 正则表达式的所有子串,结果

是一个集合

position(substring in string)返回子串的位置;strpos(string, substring)函数的作用相同,但

是参数顺序相反。

starts_with(string, prefix)函数判断 string 是否以 prefix 开头,如果是则返回 true;否则返回

false。

replace(string, FROM, to)函数将字符串 string 中的 FROM 子串替换为 to 子串;
regexp_replace(string, pattern, replacement [, flags])函数字符串 string 中匹配 POSIX 正则表达式
pattern 的子串替换为 replacement

translate(string , FROM , to)函数将字符串 string 中出现在 FROM 中的字符串替换成 to 中相

应位置的字符。如果 FROM 长度大于 to,在 to 中没有对应值的字符将被删除。

overlay(string placing substring FROM [for])函数使用 substring 覆盖字符串 string 中从

FROM 开始的 for 个字符。

sql 复制代码
select overlay('txxxxas' placing 'hom' from 2 for 4);

截断与填充

trim([leading | trailing | both] [characters] FROM string)函数从字符串的开头(leading)、

结尾(trailing)或者两端(both)删除由指定字符 characters(默认为空格)组成的最长子串;
trim([leading | trailing | both] [FROM] string [, characters])函数的作用相同。

sql 复制代码
select trim(both 'xyz' from 'yxTomxx');


btrim(string [, characters])函数的作用与上面 trim 函数的 both 选项相同;ltrim(string [, characters])与上面 trim 函数的 leading 选项相同;rtrim(string [, characters])函数上面 trim 函数的 trailing 选项相同。

sql 复制代码
select btrim('yxTomxx', 'xyz'), ltrim('yxTomxx', 'xyz'), rtrim('yxTomxx',
'xyz');


lpad(string, length [, fill ])函数在 string 左侧使用 fill 中的字符(默认空格)进行填充,直到

长度为 length。如果 string 长度大于 length,从右侧截断到长度 length。

rpad(string, length [, fill ])函数在 string 右侧使用 fill 中的字符(默认空格)进行填充,直到

长度为 length。如果 string 长度大于 length,从右侧截断到长度 length。

repeat(string, number)函数将字符串 string 重复 N 次。

sql 复制代码
select lpad('hi', 5, 'xy'), rpad('hi', 5, 'xy'), repeat('Pg', 4);

字符串格式化

format(formatstr , formatarg)用于对字符串格式化,类似于 C 语言中的 sprintf 函数。

sql 复制代码
select format('hello %s, %1$s', 'world');

MD5 值

md5(string)函数用于返回十六进制格式的 MD5 值。

字符串拆分

regexp_split_to_table(string, pattern[, flags])函数用于拆分字符串,使用 POSIX 正则表达式

作为分隔符。函数的返回类型是 text 集合。

sql 复制代码
select regexp_split_to_table('hello world', '\s+');


split_part(string, delimiter, field)函数使用 delimiter 拆分字符串,并返回指定项(从 1 开始

计数)。

sql 复制代码
select split_part('abc~@~def~@~ghi', '~@~', 2);

字符串反转

reverse(str)函数用于将字符串反转。

sql 复制代码
select reverse('上海自来水');
相关推荐
夜泉_ly36 分钟前
MySQL -安装与初识
数据库·mysql
qq_529835352 小时前
对计算机中缓存的理解和使用Redis作为缓存
数据库·redis·缓存
月光水岸New4 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6754 小时前
数据库基础1
数据库
我爱松子鱼4 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo4 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser5 小时前
【SQL】多表查询案例
数据库·sql
Galeoto6 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)6 小时前
MySQL主从架构
服务器·数据库·mysql
leegong231116 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql