高分拜求!!mssql2005字符串分割问题!我的数据库有个字段存储了图片的详细地址,这样的:/upload/20120404/abcdefg.jpg我想更改掉此字段只存储图片的文件名,其他的都去掉,变成这样:abcdefg.jpg请问要如何操作啊?SQL语句,小弟不才。 拜求各位高手了!!
解决方案 »
- 数据库 查询m_set.m_strFilter.Format()的问题
- 求一条SQL语句!
- SQL SERVER 2005 dev 的安装问题
- 初学数据库,关系数据库里一个简单的问题~请大家帮帮忙!
- 在存储过程中如何暂停脚本的执行?
- 请教大家一个最简单的SQL命令问题!
- 为什么Order by 一个字段的相同值前面的top就没有了?
- sqlserver字段选择
- 求助:如何查找数据库中的是否有这个列名?
- 在SQL Server7.0中如何设置(MinLSN)minimum recovery log sequence number.
- 请帮忙改个SQL语句让他能执行
- SQL SERVER 字段 日期格式的问题。
select reverse(left(REVERSE('/upload/20120404/abcdefg.jpg'),
charindex('/',REVERSE('/upload/20120404/abcdefg.jpg'))-1)) as name
name
abcdefg.jpg
真的可以实现,不过,我如何才可以从字段中读取这个“/upload/20120404/abcdefg.jpg”呢? 因为数据库记录有很多条 我想一次性全部更改过来,可以实现吗?
select reverse(left(REVERSE(字段名),
charindex('/',REVERSE(字段名))-1)) from 表名
charindex('/',REVERSE(字段名))-1))
/*
abcdefg.jpg
*/
set Col=RIGHT(Col,CHARINDEX('/',reverse(Col)+'/')-1)
--或UPDATE TableName
set Col=RIGHT(Col,CHARINDEX('/',reverse(Col))-1)
where Col like '%/%'
declare @str varchar(100),@str2 varchar(100)
set @str= '/upload/20120404/abcdefg.jpg '
select @str2=substring(@str,patindex( '%[0-9]% ',@str),len(@str)) --得到以第一个数字开始的字符串
,@str2=left(@str2,patindex( '%[^0-9]% ',@str2)-1)--得到第一个非数字开始的位置,并根据此位置删除其及以后的字符
select @str2 as [date] --显示结果
/*
date
20120404
*/
declare @s varchar(100)='/upload/20120404/abcdefg.jpg'select SUBSTRING(@s,charindex('/2',@s)+1,patindex('%[0-9]/%',@s)-charindex('/2',@s))--路径不固定时
/*
20120404
*/把变量改为列名就行了
路径中只有日期段为数字时可以这样
declare @s varchar(100)='/upload/20120404/abcdefg.jpg'select SUBSTRING(@s,charindex('/2',@s)+1,8)--路径不固定时
/*
20120404
*/