postgresql-字符函数

字符串拼接

-- 字符串连接
select concat('s','q','l') ;

在这里插入图片描述

--分隔符连接字符串
select concat_ws('-','s','q','l') ;

在这里插入图片描述

--字符串连接
-- PostgreSql
select 'Post'||'greSql';

在这里插入图片描述

字符串长度

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

--字符串长度
select bit_length('sql'), length('sql'), octet_length('sql');

在这里插入图片描述

大小写转换

-- lower小写 upper大写 initcap首字母大写
select lower('tom'), upper('tom'), initcap('hi thomas');

在这里插入图片描述

字符串查找与替换

substring(string [FROM] [for])函数用于提取从位置 FROM 开始的 for 个字符子串,位置从
1 开始计算。substr(string, FROM [, count])的作用相同

select substring('Thomas' from 2 for 3), substr('Thomas',2, 3);

在这里插入图片描述
left(str, n)函数返回字符串左边的 n 个字符。如果 n 为负数,返回除了最后|n|个字符之外的
所有字符。
right(str, n)函数返回字符串右边的 n 个字符。如果 n 为负数,返回除了左边|n|个字符之外的
字符

select left('abcde', 2), right('abcde', 2);

在这里插入图片描述
substring(string FROM pattern)函数提取匹配 POSIX 正则表达式的子串。
substring(string FROM pattern for escape)函数提取匹配 SQL 正则表达式的子串。

select substring('Thomas' FROM '...$'), substring('Thomas' FROM '%#"o_a#"_'
for '#');

在这里插入图片描述
regexp_match(string, pattern [, flags])函数返回匹配 POSIX 正则表达式的第一个子串。

select regexp_match('foobarbequebaz', '(bar)(beque)');

在这里插入图片描述
regexp_matches(string, pattern [, flags])函数返回匹配 POSIX 正则表达式的所有子串,结果
是一个集合

select regexp_matches('foobarbequebaz', 'ba.', 'g');

在这里插入图片描述
position(substring in string)返回子串的位置;strpos(string, substring)函数的作用相同,但
是参数顺序相反

SELECT position('om' in 'Thomas'), strpos('Thomas', 'om');

在这里插入图片描述
starts_with(string, prefix)函数判断 string 是否以 prefix 开头,如果是则返回 true;否则返回
false。

select starts_with('alphabet', 'alph');

在这里插入图片描述
replace(string, FROM, to)函数将字符串 string 中的 FROM 子串替换为 to 子串;
regexp_replace(string, pattern, replacement [, flags])函数字符串 string 中匹配 POSIX 正则表达式
pattern 的子串替换为 replacement。

select replace('abcdefabcdef', 'cd', 'XX'), regexp_replace('Thomas',
'.[mN]a.', 'M');

在这里插入图片描述
translate(string , FROM , to)函数将字符串 string 中出现在 FROM 中的字符串替换成 to 中相
应位置的字符。如果 FROM 长度大于 to,在 to 中没有对应值的字符将被删除

select translate('12345', '143', 'ax');

在这里插入图片描述
overlay(string placing substring FROM [for])函数使用 substring 覆盖字符串 string 中从
FROM 开始的 for 个字符

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])函数的作用相同

select trim(both 'xyz' from 'yxTomxx');

在这里插入图片描述
btrim(string [, characters])函数的作用与上面 trim 函数的 both 选项相同;ltrim(string [,
characters])与上面 trim 函数的 leading 选项相同;rtrim(string [, characters])函数上面 trim 函数的trailing 选项相同。

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 次。

select lpad('hi', 5, 'xy'), rpad('hi', 5, 'xy'), repeat('Pg', 4);

在这里插入图片描述

字符串格式化

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

select format('Hello %s, %1$s', 'World');

在这里插入图片描述

MD5 值

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

select md5('abc');

在这里插入图片描述

字符串拆分

regexp_split_to_table(string, pattern[, flags])函数用于拆分字符串,使用 POSIX 正则表达式
作为分隔符。函数的返回类型是 text 集合。

select regexp_split_to_table('hello world', '\s+');

在这里插入图片描述
split_part(string, delimiter, field)函数使用 delimiter 拆分字符串,并返回指定项(从 1 开始
计数)。

select split_part('abc~@~def~@~ghi', '~@~', 2);

在这里插入图片描述

字符串反转

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

select reverse('上海自来水');

在这里插入图片描述
官网字符函数介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值