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

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

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算