首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL字段截取求教,该怎么处理

2013-08-23 
SQL字段截取求教初学者运行截取两个f之间的字段,有没有更好的方法!本人不知道f第N次出现的位置怎么写,所以

SQL字段截取求教
初学者SQL字段截取求教,该怎么处理运行截取两个f之间的字段,有没有更好的方法!本人不知道f第N次出现的位置怎么写,所以就弄了个本方法。求大神们授业解惑也!SQL字段截取求教,该怎么处理
declare @t char(100),@s char(100) 
set @t='alfki77777777bfd'
set @s=substring(@t,patindex('%f%','alfkibfd')+1,len(@t))
print substring(@t,patindex('%f%',@t)+1,patindex('%f%',@s)-1)

字段:alfki77777777bfd
运行结果:ki77777777b SQL substring patindex
[解决办法]


declare @t varchar(100),@s varchar(100)

set @t='alfki77777777bfd'

set @s=substring(@t,charindex('f',@t,1)+1,len(@t)-charindex('f',reverse(@t),1)-charindex('f',@t,1))

select @s 's'

/*
s
----------------------
ki77777777b

(1 row(s) affected)
*/

[解决办法]
declare @t char(100),@s char(100) 
set @t='alfki77777777bfd'
set @s=substring(@t,patindex('%f%','alfkibfd')+1,len(@t))
print substring(@t,patindex('%f%',@t)+1,patindex('%f%',@s)-1)

--楼主的方法已经不错了
SELECT SUBSTRING(STUFF(@t,1,CHARINDEX('f',@t),''),1,CHARINDEX('f',STUFF(@t,1,CHARINDEX('f',@t),''))-1)
SELECT SUBSTRING(@t, CHARINDEX('f',@t)+1, LEN(@t) - CHARINDEX('f',@t) - CHARINDEX('f',REVERSE(RTRIM(@t))))
/*ki77777777b*/

热点排行