PostgreSQL字符剪切:substring函数的用法
  • 作者:admin
  • 发表时间:2021-05-06 07:51
  • 来源:未知

本文主要介绍PostgreSQL字符切割:substring函数的使用说明,具有很好的参考价值,希望对大家有所帮助。和边肖一起来看看

Postgresql(以下简称pg)作为目前最强大的开源数据库,在处理字符方面也是最强大的。首先,它还具有其他数据库所具有的通用功能,比如substr、trim等。在这里我们介绍他的一个更强大的函数,substring,它可以使用像python、java等编程语言的正则表达式,并且非常强大。

在此之前,让我们来看看四个最基本的正则表达式

%代表一个或多个字符_代表一个字符,before $代表after。

pg在官网的用法如下,但不够清晰。下面我一个一个解释

第一

用法类似substr,substr指定序列,从2到3从序列为2的位置取3个字符。以上示例

第二

示例用法的意思是:在$表示一个字符后,一个点表示一个字符,即从末尾选择三个字符。类似地,如果它是来自'^'的substring('Thomas '.),结果就是Thom

第三

用法最实用,也最难懂。首先,大致了解:

在from“% #”o _ a #“_”for“#”中,from是开头(包括),for后面跟转义,即结尾

这个例子的意思是我要o_a的组合字符,其中不需要o_a的多个(%)字符,不需要下一个(_)字符。这里要注意分段后还剩多少个字符写几_个。

这里的架构可以理解为固定的,即从' #' # '开始为' #' # '是拆分字符,可以在# '之前、之中、之后选择自己最想要的字符

让我们用一个例子来解释第三种用法

需求:下图中的查询结果是查询日志表。我想要[]中的数据。因为[]中的字符长度不是固定的,只能用sql来剪切,所以第三种方法只能用来获取[]中的数据

解决方案1:

根据以上思路,我可以在唐山网站上设计并编写这样一个框架'[#'%#'_______' FOR '# ',并尝试运行

选择

SUBSTRING(

log_txt

【#'%#'_______' FOR '# '

)log_txt

操作日志(_ l)

在哪里

log_type='15 '

极限3

解决方案2:

也可以根据position函数来求解,类似python的index,就是把一个字符串的一个字符转换成该字符所在位置的个数,这样就可以使用substring的第一个例子用法,即,

1变电站(位置('【'))的log_txt FROM 2)

好了。

补充:Postgresql的split_part()切割功能

如下所示:

1split_part(字符串文本,分隔符文本2,字段int)