第三种:正则表达式截取 SUBSTRING(string,pattern);
SELECT
SUBSTRING ('PostgreSQL', 'gre'); --正则表达式截取,截取'gre'字符串
第四种:正则表是截取 SUBSTRING(string FROM pattern)
SELECT
SUBSTRING ('PostgreSQL' FROM 'gre' );--正则表达式截取,截取'gre'字符串
反向截取:
利用反转函数reverse(),将字符串反转过来,在进行截取,截取完成后,在将截取的字符串反转回来。
例如我想截取字符串'
PostgreSQL
'最后2位字符:
select
reverse(SUBSTRING(reverse('PostgreSQL'),1,2))--截取最后二位字符串,返回结果:QL
首先学习两个
函数
1.
substring
返回字符、binary、text 或 image 表达式的一部分。基本语法:
SUBSTRING
( expression , start , length ) expression:字符串、二进制字符串、text、image、列或包含列的表达式start:整数,指定子串的开始位置 注:
SQL
中”1″表示字符串中的第一个字符,而.NET中”0″表示第一个字符length:整数,指定子串的长度(要返回的字符数或字节数)
2.patindex 返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零
参数解释:
string 可以是 char, varchar, text等数据类型。
start_position 是integer类型,指定从哪开始抽取. 如果等于零,则从第一个字符开始。虽然其他
数据库
可以为负数,但这里只能是正数。
length
截取字符串
一般用
substring
就够用了。对于有些长度不定的就没法用这个
函数
了,但还是有规律的,可以某个字符分割。
-- 字符串被分成3部分,取最后一部分,那最后一个参数就是3
select split_part('11-22-33' ,'-', 3)
-- 最后 +1 是为了取最后一部分内容
select split_part('aa-bb-cc' ,'-', (length('11-2...
2020秋招笔试—表示年份的子串题目思路代码
小明想从一段英文短文中提取潜在的年份信息,待匹配的年份的范围为1000年至3999年,包含1000和3999,输入一段英文短文,按出现次序输出所提取到的所有可能的年份字符串。
And millinaires will hold 46% of total wealth by 2019,the report says.This ratio is likely to increase in 2020.
2019 2020
对字符串求
举例:现在要取 - 后面部分内容
8a59e88177ad5e70-20170317120301AB9E.plist
12b8d5c26d83a17f-20170308173008D5DD.plist
解析:一共3个 - ,字符串被分成4部分,取最后一部分,那最后一个参数就是4
select split_part(fs.cdn_url ,’-’, 4) from fil...
1. SPLIT_PART
SPLIT_PART()
函数
通过指定分隔符分割字符串,并返回第N个子串。语法:
SPLIT_PART(string, delimiter, position)
string : 待分割的字符串
delimiter:指定分割字符串
position:返回第几个字串,从1开始,该参数必须是正数。如果参数值大于分割后字符串的数量,
函数
返回空串。
SELECT SPLIT_PART('A,B,C', ',', 2); -- 返回B
下面我们利用该
函数
分割日期,获取年月