当前位置: 首页 > news >正文

postgresql-字符函数

postgresql-字符函数

  • 字符串连接
  • 字符与编码
  • 字符串长度
  • 大小写转换
  • 子串查找与替换
  • 截断与填充
  • 字符串格式化
  • MD5 值
  • 字符串拆分
  • 字符串反转

字符串连接

concat(str, …)函数用于连接字符串,并且忽略其中的 NULL 参数;concat_ws(sep, str, …)
函数使用指定分隔符 sep 连接字符串。

select concat(2, null, 22), concat_ws(' and ', 2, null, 22);

在这里插入图片描述
两个竖杠(||)也可以用于连接字符串,但是 NULL 参数将会返回 NULL。

SELECT 'Post'||'greSQL', 'Post'||NULL||'greSQL';

在这里插入图片描述

字符与编码

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

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 个字符。

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 值。
在这里插入图片描述

字符串拆分

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('上海自来水');

在这里插入图片描述

http://www.lryc.cn/news/146156.html

相关文章:

  • VUE笔记(五)网络通信
  • 微信小程序修改数据,input不能实时回显
  • GitHub Copilot三连更:能在代码行里直接提问,上下文范围扩展到终端
  • 双亲委派机制
  • 美团北极星榜单,服务零售的医美新样本
  • geant4 常用代码
  • 重要通知!eBay将升级买家满意度考核,如何让你的店铺脱颖而出?
  • PHP中pack、unpack的用法
  • KUKA机器人零点标定的具体方法
  • 基于SpringBoot+Vue的旅游系统
  • leetcode算法题--复杂链表的复制
  • C++面试题(叁)---操作系统篇
  • 算法笔记:KD树
  • plumelog介绍与应用-一个简单易用的java分布式日志系统
  • 百度网盘删除“我的应用数据”文件夹
  • 多店铺智能客服,助力店铺销量倍增
  • 会话跟踪技术
  • 递归算法学习——子集
  • 学习笔记:ROS使用经验(ROS报错)
  • 设计模式二十四:访问者模式(Visitor Pattern)
  • 使用gn+Ninja构建项目
  • VMware虚拟机连不上网络
  • 安防视频监控/视频集中存储/云存储平台EasyCVR平台无法取消共享通道该如何解决?
  • 算法通关村-----如何基于数组和链表实现栈
  • day-05 TCP半关闭 ----- DNS ----- 套接字的选项
  • 区块链金融项目怎么做?
  • Redis与数据库保持一致
  • idea中vue项目 npm安装插件后node modules中找不到
  • 已知两地经纬度,计算两地直线距离
  • 我想开通期权?如何开通期权账户?