Cole-小助教 2021-06-22 09:36 采纳率: 0%
浏览 295

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

例如:

/2021_04_13/hh/MS02210410501076.JPG

所取是hh

  • 写回答

2条回答 默认 最新

  • CSDN专家-文盲老顾 2021-06-22 10:05
    关注

    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之类的方法,不过我不太了解

    评论

报告相同问题?