获取'/'字符后的字符串 [英] Get string after '/' character

查看:30
本文介绍了获取'/'字符后的字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要提取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次。
$..锚定到字符串末尾。

db<;>;小提琴here
sqlfiddle

这篇关于获取&#39;/&#39;字符后的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆