pgsql实现类似substring_index截取字符串的效果

数据需求:

例如该字符串:
[{"Value":"18900000000","Note":"2020年报"},{"Value":"19100000000","Note":"企业官网"}]
想要截取第三次出现 " 和 第四次出现 " 中间的内容,即18900000000

由于postgresql没有substring_index函数,需要截取的字符串长度也不确定,可以使用split_part()达到类似的效果。

select split_part('[{"Value":"18900000000","Note":"2020年报"},{"Value":"19100000000","Note":"企业官网"}]','"',4)

--18900000000
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: pgsql中的substring函数可以用来截取字符串。它的语法如下: substring(string from start [for length]) 其中,string是要截取的字符串,start是起始位置,length是要截取的长度。如果不指定length,则会截取从start位置开始到字符串末尾的所有字符。 例如,要截取字符串"hello world"中的"world",可以使用以下语句: SELECT substring('hello world' from 7); 结果为:"world" 如果要截取字符串中的一段子串,可以指定起始位置和长度,例如: SELECT substring('hello world' from 3 for 5); 结果为:"llo w" ### 回答2: pgsql substring函数可用于截取一个字符串的部分内容。该函数的常用格式为:“substring(string from start for length)”,其中string为要截取的字符串,start为起始位置,length为截取长度。 例如,要截取字符串“Hello World”的第3个字符至第7个字符,可以使用以下代码: SELECT substring('Hello World' from 3 for 5); 结果为“llo W”。 如果要截取的字符串是一个列名,可以直接引用该列名,例如: SELECT substring(column_name from 3 for 5) FROM table_name; 如果想要截取的起始位置不是固定的,可以使用strpos函数来查找起始位置,例如: SELECT substring('Hello World' from strpos('Hello World', 'o') for 5); 该语句的意思是从字符串“Hello World”中的第一个“o”开始,截取长度为5的子字符串。因此结果为“o Wor”。 除了截取固定长度的子字符串,还可以使用substring和strpos函数结合起来截取不固定长度的子字符串,例如: SELECT substring('Hello World' from strpos('Hello World', 'o')); 该语句的意思是从字符串“Hello World”中的第一个“o”开始,截取该字符及其后的所有字符。因此结果为“o World”。 总之,pgsql substring截取字符串是一种常用的字符串操作方法,可以灵活运用于各种场景中。 ### 回答3: 在PostgreSQL中,可以使用substring函数来截取字符串。 要使用substring函数,需要提供三个参数:要截取的字符串本身,开始截取的位置和截取的长度。例如: ``` SELECT substring('Hello, world!' from 2 for 5); -- Output: ello, ``` 这个查询会从字符串“Hello, world!”的第二个字符开始,截取长度为5的字符串。 如果要从字符串的结尾开始截取,可以使用负数作为起始位置。例如: ``` SELECT substring('Hello, world!' from -6); -- Output: world! ``` 这个查询会从字符串的倒数第六个字符(也就是“w”)开始,一直截取到字符串的末尾。 另外,substring函数也可以接受正则表达式作为参数,从而实现更加灵活的字符串截取。例如: ``` SELECT substring('Hello, world!' from 'oo.*'); -- Output: o, world! ``` 这个查询会从字符串中找到第一个以“oo”开头的子串,并将其截取出来。 总的来说,substring函数在PostgreSQL中非常灵活,可以实现各种字符串截取的需求。如果需要处理大量的文本数据,这个函数一定会非常有用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值