PostgreSQL数据库基础 字符切割 substring 函数的用法举例
作为当前最强大的开源数据库,Postgresql(以下简称pg)对字符的处理也是最为强大的,首先他也有substr,trim等其他数据库都有的普通函数,这里我们介绍他更强大的一个函数substring,可以像python,java等编程语言一样使用正则表达式,强大到极点
在此之前我们先了解一下正则表达式最基础的四个
%代表一个或多个字符 _代表一个字符 ^代表字符前 $代表字符后
pg的官网上对其用法是下面这样,但不够清楚了然,下面我一一解释
用法和substr差不多,是指定序列,from 2 for 3 是从序列为2的位置开始取3个字符。例子如上
例子用法的意思是:$代表字符后, 一个点代表一个字符,即从最末尾开始选择3个字符,同样的如果是substring( Thomas from ^ . ) 则结果是Thom
用法是最实用的,也是最难理解的,先大致理解:
from %# o_a# _ for # 中from是开始(包含),for后面跟的是逃逸,即结束
这个例子的意思是我想要o_a的组合字符,其中o_a的多个(%)字符不要,后面的一个(_)字符不要,这里要注意的是切分后面剩多少字符写几个_
这里的架构可以理解为固定的,即 from # # for # # 是分割字符,可以在# 前中后限定选择你最想要的字符
下面用实例来讲解一下第三个用法
需求:下图的查询结果是查的日志表,我想要【】里的数据,由于【】里字符长度不固定,又只能用sql来切割,因此只能使用第三种方法来获取【】里的数据
根据上面的思想,我可以写这样的架构 【# %# _______ FOR # ,试着运行一下
SELECT
SUBSTRING (
log_txt
FROM
【# %# _______ FOR #
) log_txt
FROM
operation_log
WHERE
log_type = 15
LIMIT 3
也可以根据position这个函数来解决,这个函数类似于python的index,就是把字符串的某个字符转变为该字符所在的位置数,如此一来便可以使用substring的第一个例子用法,即
SUBSTRING ( log_txt FROM 2 FOR position( 【 ))
ooook 搞定了!!!
补充:Postgresql之split_part()切割函数
如下所示:
split_part(string text, delimiter text2, field int)
text要切割的字段; text2按照什么形式切割 int截取的位置
ps:
text=“name.cn” split_part(text, . ,1) 结果: name
text=“name.cn” split_part(text, . ,2) 结果: cn
text=“name.cn.com” split_part(text, . ,3) 结果: com
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 PostgreSQL数据库基础 字符切割 substring 函数的用法举例
相关文章
- oracle截取字符添加数据库,oracle截取字符串前几位的方法_数据库[通俗易懂]
- postgresql数据库基础 之 查询字符串中是否包含某字符的操作
- 优化优化PostgreSQL编码,提升数据库性能(postgresql编码)
- Oracle数据库中的字符比较性能提升(oracle字符比较)
- 数据库使用PostgreSQL实现分布式数据库构建(postgresql分布式)
- 集深入理解Oracle数据库字符集(oracle数据库字符)
- 使用阿里云PostgreSQL轻松搭建数据库(阿里云postgresql)
- UTF8Oracle数据库中的UTF8字符编码(oracle字符)
- 玩转PostgreSQL数据库:学习如何处理除法(postgresql除法)
- 探索PostgreSQL客户端工具,优化数据库管理(postgresql客户端工具)
- PostgreSQL接口:轻松连接数据库(postgresql接口)
- 深入探索PostgreSQL集群技术,构建稳定高效的数据库架构(postgresql集群)
- Oracle 数据库的任意字符匹配操作(oracle任意字符)
- PostgreSQL:轻松入门的开源数据库(postgresql介绍)
- PostgreSQL测试:深入了解数据库运行状况(postgresql测试)
- Postgresql权威指南:打造完美数据库环境(postgresql手册)
- 编译PostgreSQL:一步一步实现数据库功能(postgresql编译)
- Oracle数据库中如何生成随机字符(oracle随机字符)
- Oracle数据库中的全库查找字符(oracle全库查找字符)
- 字符Oracle数据库中获取右侧字符的方法(oracle 中获取右侧)
- Oracle数据库如何保证中文数据准确性(oracle保存中文字符)
- 解决方案MySQL数据库无法正常显示中文字符的问题(mysql不显示中文字符)
- Oracle乘字符,驾驭数据库大门(oracle 乘 字符)
- Oracle数据库中的字符数组使用实例(oracle中的字符数组)
- Oracle数据库中处理无效字符的方法(oracle中为无效字符)
- K字Oracle数据库中对CJK字符的支持(oracle中CJ)
- mysql修改数据库编码(数据库字符集)和表的字符编码的方法