sql - 在PostgreSQL中获取2个字符之间的子字符串

我正在尝试获取 URL 之间的字符,就像在 postgreSQL 中那样:

www.abc.com/hello/xyz

www.abc.com/hi/pqr

www.abc.com/yellow/xyz

我想得到

hello

hi

yellow

这是我目前所拥有的:

select distinct substring(url, position('/' in url)+ 1) theURL from table;

我只能得到第一个“/”

我不确定如何获得第二个的位置

最佳答案

一种方法使用 regexp_split_to_array():

select (regexp_split_to_array(url, '/'::text))[2]

或如@NeilMcGuigan 所建议的更好:

select split_part(url, '/', 2)

https://stackoverflow.com/questions/49056668/

相关文章:

python - "invalid character ' u ' looking for begi

android-studio - "APK was defined multiple times",

sql - 带有窗口函数的 CASE 语句

spring - Feign Client - 动态授权 header

regex - 如何在Hive SQL中选择具有相同前缀(开始)或后缀(结束)或中间关键字(包括)的

angular - 如何将数据传递给 ng-bootstrap popover

r - Shiny :在 numericInput 中右键单击时提供上下文菜单?

r - 根据最近的日期合并数据 R

python - 如何在 Python 中将加权边列表转换为邻接矩阵?

javafx - 如何在 JavaFX 中设置默认关闭操作?