首页 > 数据库 >postgresql 截取第二个特定字符

postgresql 截取第二个特定字符

时间:2024-04-09 12:46:28浏览次数:19  
标签:字符 www postgresql 截取 斜杠 字符串 com example

在开发 PostgreSQL 数据库应用程序时,经常需要在查询语句中截取字符串。在某些情况下,需要截取字符串中的特定字符。例如,从 URL 中获取域名,从文本中获取文件名等。

本文将介绍如何在 PostgreSQL 中截取字符串中的第二个特定字符。我们将使用 SUBSTRINGPOSITION 函数来实现这一目标。

假设我们有一个文本字符串 “http://www.example.com/filename.txt”,我们需要从中获取域名 “www.example.com”。

步骤1:查找第一个正斜杠

使用 POSITION 函数查找字符串中第一个正斜杠的位置。POSITION 函数返回一个整数值,指示第一个匹配子字符串的位置,如果未找到,则返回 0。我们将使用 substring 函数将域名和 TLD 分离,并且它们之间的子字符串将包含第一个正斜杠。所以我们只需要查找第一个正斜杠位置就可以了。

sql SELECT position('/' in 'http://www.example.com/filename.txt');

输出结果:

6

步骤2:查找第二个正斜杠

现在,我们需要使用 POSITION 函数查找第二个正斜杠的位置。我们只需要从第一个正斜杠之后开始搜索即可。因此,我们将把第一个正斜杠位置作为起始位置传递给 POSITION 函数。同样,我们将获取文件名和文件扩展名,它们之间的子字符串将包含第二个正斜杠。

sql SELECT position('/' in 'http://www.example.com/filename.txt'    starting from position('/' in 'http://www.example.com/filename.txt') + 1);

输出结果:

20

步骤3:截取子字符串

现在我们可以使用 SUBSTRING 函数来截取字符串。我们将把第二个正斜杠的位置作为位置参数传递给 SUBSTRING 函数,然后从第一个正斜杠之后截取子字符串。

sql SELECT substring('http://www.example.com/filename.txt'    from position('/' in 'http://www.example.com/filename.txt') + 1    for position('/' in 'http://www.example.com/filename.txt'      starting from position('/' in 'http://www.example.com/filename.txt') + 1) - 1);

输出结果:

www.example.com

现在,我们已经成功地截取了字符串中的第二个特定字符。您可以使用类似的方式从其他字符串中截取特定的字符。

也可和split_part一起使用:

若存在三个'',则用分隔,若不存在三个,则本身就已经是三级部门

case when length(user_deptpath) - length(replace(user_deptpath,'', '')) >=3  then substring(user_deptpath, 0 , position(split_part(user_deptpath,'',4) in user_deptpath)-1) else user_deptpath end

总结

在本文中,我们介绍了如何在 PostgreSQL 中截取字符串中的第二个特定字符。我们使用了 PostgreSQL 的 SUBSTRINGPOSITION 函数。这种方法对于从字符串中提取特定信息非常有用。您可以根据自己的需求对这种方法进行修改,并将其应用于您的应用程序中。

标签:字符,www,postgresql,截取,斜杠,字符串,com,example
From: https://www.cnblogs.com/bigleft/p/18123719

相关文章

  • PostgreSQL 将分组后的字段合并成一个 JSON 对象
    在PostgreSQL数据库中,有时需要将分组后的字段合并成一个JSON对象,并将其保存到一个新的字段中。本文将介绍如何使用PostgreSQL中的json_agg函数来实现这一目标。假设我们有一个销售订单表格,其中包含订单编号、产品名称和销售数量等字段。现在我们需要按照订单编号分组,并将......
  • PostgreSQL中json_build_object的用法
    在PostgreSQL数据库中,有时我们需要将多个字段合并成一个JSON对象,并将其用于保存或传输数据。json_build_object函数可用于将指定的键值对合并为一个JSON对象。该函数的语法如下:sqljson_build_object(keytext,valueany[,...])其中,key是JSON对象中的键名,可以是......
  • postgresql通过explain命令查看查询性能
    explain(ANALYZE,VERBOSE,BUFFERS)selectc.*fromtb_classificationcleftjointb_operate_logoonc.id=o.object_idwhere1=1andc.parent_code='root000000'ando.operate_type>=0ando.idin(selectmax(so.id)fromtb_operate_logsogroup......
  • 【蓝桥·算法双周赛 第 9 场 小白入门赛】字符迁移【算法赛】题解(字符串+模运算+差分)
    思路差分数组是一种特殊的数组,它的第iii个数定义为原数组的第ii......
  • 【蓝桥·算法双周赛 第 4 场 小白入门赛】自助餐【算法赛】题解(分支+字符串)
    思路首先定义一个整型变量n和一个长整型变量ans,其中n用于存放输入的字符串个数,ans则用于累计所有字符串对应的价格。在接收到n之后,进入一个循环,在循环中,每次接收一个字符串s,并根据s的首字母判断该字符串对应的餐盘种类,并将其价格累加到ans中。具体来说,如果......
  • Python基础笔记02-while、字符串格式化、运算符、基础概念与数据类型
    前言!!!注意:本系列所写的文章全部是学习笔记,来自于观看视频的笔记记录,防止丢失。观看的视频笔记来自于:哔哩哔哩武沛齐老师的视频:2022Python的web开发(完整版)入门全套教程,零基础入门到项目实战1.条件语句补充1.1基本语句if条件: ...else:...1.2多条件if条件1:......
  • Python文档字符串设置--在PyCharm中
    引言在PyCharm中,只要我们在一个函数下面输入一个三引号"""并回车,PyCharm会自动帮我们补全文档字符串,如下图所示:然而,有些小伙伴的pycharm却无法实现这种功能,接下来我会讲一下,如何在PyCharm中设置,让PyCharm自动生成我们想要的文档字符串。PyCharm文档字符串种类种类如下所示:......
  • 探秘KMP算法:解密字符串匹配的黑科技
    KMP算法在正式进入KMP算法之前,不得不先引经据典一番,因为直接去理解KMP,你可能会很痛苦(别问,问就是我也痛苦过)。所以做好前面的预热工作非常非常重要,为了搞明白KMP,在没见到KMP算法的完整代码之前,请耐心的将前面的东西看完。一些相关的概念学习KMP算法,得明白它主要得作用......
  • 格式化字符串走过的坑 pwn109
    格式化字符串走过的坑pwn109今天做的一道题有一个坑我调试半天终于打通了,格式化字符串的坑,确实不少,东西也比较多容易忘记,怎么说呢,功夫在平时,经验少了老规矩先看一下保护FullRELRO意味着got不能修改也就是不能通过格式化字符串漏洞来改got表,但是nx保护关闭了,也就是我们可以通......
  • GC机制+字符编码+文件操作
    深浅拷贝深浅拷贝问题1.1定义理解给一个列表,想基于这个列表进行更改生成一个新的列表。方式一:将原来列表复制一份一摸一样的只对新列表生效,对原来的不生效num_list=[1,2,3]num_list_new=[1,2,3]num_list_new.append(4)print(num_list)#[1,2,3]print(num_list_n......