Simplxs
2015-10-13 02:12
采纳率: 66.7%
浏览 2.8k

关于SQL语句截取字符串

我的目的是以一个字符串为坐标截取,而不是以一个坐标点截取。
列如一个链接:http://bbs.csdn.net/topics/new?forum_id=MSSQL,http://bbs.csdn.net/forums/MSSQL我想以最后一个'/'反斜杠截取字符串,请问有什么方法?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 吉普赛的歌 2015-10-16 07:18
    已采纳

    select reverse(substring(reverse(FILEURL),1,charindex('/',reverse(FILEURL)) - 1)) from tableName

    点赞 打赏 评论
  • WorldMobile 2015-10-13 06:12

    SQL 中的LastIndexOf,截取最后一次出现字符后面的字符

    SQL如何取出一个字符串中最后一个特殊字符右边的字符,例如:10*20*300,怎样得到300?
    使用reverse配合charindex来实现。
    reverse是把字符串倒置,然后通过charindex来获取倒置之后第一个*的位置,然后使用substring函数进行字符串截取,截取后再使用reverse倒置回来即可。
    以下为例子
    declare @str varchar(20)
    set @str = '10*20*300'
    select reverse(substring(reverse(@str),1,charindex('*',reverse(@str)) - 1))

    结果是300
    以上是SQLSERVER的语法。
    ORACLE数据库也有REVERSE函数,不过SUBSTRING要改成SUBSTR,CHARINDEX函数要改成INSTR函数
    SELECT reverse(substr(reverse('10*20*300'),1,INSTR(reverse('10*20*300'),'*') - 1)) FROM DUAL;
    结果是300

    可以参考
    http://blog.csdn.net/junboyboy/article/details/24323565

    点赞 打赏 评论
  • Simplxs 2015-10-16 05:57

    图片说明
    我想通过一条sql语句去除这里面所有数据并且对'FILEURL'列进行截取,取出最后出现'\'反斜杠的后半部分,也就是取出文件名以及文件类型。

    点赞 打赏 评论
  • beyon2008 2015-10-22 07:42

    要看用什么数据库,有不同的函数,获取某一个字符最后出现的位置

    点赞 打赏 评论
  • 吉普赛的歌 2015-10-13 04:43
     --获取最后一个 / 后面的字符串
    declare @str varchar(8000) 
    set @str = 'http://bbs.csdn.net/topics/new?forum_id=MSSQL,http://bbs.csdn.net/forums/MSSQL' 
    select reverse(substring(reverse(@str),1,charindex('/',reverse(@str)) - 1)) 
    
    点赞 打赏 评论

相关推荐 更多相似问题