sql语句:一个字符串里有三个///,截取第二个/和第三个/之间的值,这样的SQL语句怎么写???

例如:

/2021_04_13/hh/MS02210410501076.JPG

所取是hh

MySql最简单,直接用正则提取

SELECT REGEXP_SUBSTR('/2021_04_13/hh/MS02210410501076.JPG', '(?<=(?:[^/]*/){2})[^/]*')

MsSql如果是高版本,2016以上的,可以直接使用string_split

select value from (
    select v.value,row_number() over(order by @@rowcount) as rid 
    from string_split('/2021_04_13/hh/MS02210410501076.JPG','/') v
) a
where rid = 3

MsSql如果是低版本,最好的办法是自己实现split_string方法,其次是实现数据库clr支持正则,再次。。。用循环去取

好像还有个patindex之类的方法,不过我不太了解

用的是什么数据库呢,不同的数据库使用的方法不一样。