获取';/';字符后的字符串 [英] Get string after '/' character
本文介绍了获取';/';字符后的字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要提取PostgreSQL SELECT查询中字符‘/’后的字符串。
字段名为source_path
,表名为movies_history
。
数据示例:
source_path的值:
- 184738/file1.mov
- 194839/file2.mov
- 183940/file3.mxf
- 118942/file4.mp4
等等。SOURCE_PATH的所有值都采用此格式
- RANDOM_NUMBER/filename.xxx
我只需要获取"file.xxx"字符串。
推荐答案
如果您的案例很简单(字符串中正好是一个/
),请使用split_part()
:
SELECT split_part(source_path, '/', 2) ...
如果可以有多个/
,并且您希望字符串位于最后一个之后,则简单而快速的解决方案是使用reverse()
向后处理字符串,取第一部分,然后再处理reverse()
:
SELECT reverse(split_part(reverse(source_path), '/', 1)) ...
或您可以将功能更多(也更昂贵)的substring()
与正则表达式配合使用:
SELECT substring(source_path, '[^/]*$') ...
说明:
[...]
..包含字符列表以形成字符类。
[^...]
..如果列表以^
开头,则为倒置(所有字符均不在列表中)。
*
..量词0-n次。
$
..锚定到字符串末尾。
这篇关于获取';/';字符后的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文