关于SQL语句截取字符串

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

5个回答

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

Simplxs
Simplxs 传递给 LEFT 或 SUBSTRING 函数的长度参数无效。 执行了下有错误
4 年多之前 回复
 --获取最后一个 / 后面的字符串
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)) 
yenange
吉普赛的歌 回复Simplxs: 可以采纳了吧, 哈哈
4 年多之前 回复
yenange
吉普赛的歌 回复Simplxs: DECLARE @t TABLE ( [url] VARCHAR(MAX) ) INSERT INTO @t ([url]) VALUES('http://bbs.csdn.net/topics/new?forum_id=MSSQLhttp://bbs.csdn.net/forums/MSSQL') INSERT INTO @t ([url]) VALUES('http://bbs.csdn.net/topics/new?forum_id=MSSQLhttp://bbs.csdn.net/forums/youself') SELECT reverse(substring(reverse(url),1,charindex('/',reverse(url)) - 1)) FROM @t
4 年多之前 回复
yenange
吉普赛的歌 回复Simplxs: DECLARE @t TABLE ( [url] VARCHAR(MAX) ) INSERT INTO @t ([url]) VALUES('http://bbs.csdn.net/topics/new?forum_id=MSSQLhttp://bbs.csdn.net/forums/MSSQL') INSERT INTO @t ([url]) VALUES('http://bbs.csdn.net/topics/new?forum_id=MSSQLhttp://bbs.csdn.net/forums/youself') SELECT reverse(substring(reverse(url),1,charindex('/',reverse(url)) - 1)) FROM @t
4 年多之前 回复
Simplxs
Simplxs 请问:假设@str的值是在表中的一个列上取得,那么怎么把那个列赋给@str呢、
4 年多之前 回复
yenange
吉普赛的歌 回复Simplxs: 那就采纳呗, 呵呵
4 年多之前 回复
Simplxs
Simplxs 直觉告诉我,你很棒、
4 年多之前 回复

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

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

yenange
吉普赛的歌 表名是什么?
4 年多之前 回复

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

Simplxs
Simplxs sql server2008r2
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问