+ -
当前位置:首页 → 问答吧 → 问条Sql 语句

问条Sql 语句

时间:2011-12-24

来源:互联网

如本查找某字段中最后一个字符到这个字符之前的第1个空格 之前的数据?

作者: sxmonsy   发布时间: 2011-12-24

SQL code
declare @str varchar(20)='abc dne'
select reverse(left(reverse(@str),charindex(' ',reverse(@str))-1))

作者: ssp2009   发布时间: 2011-12-24

SQL code
declare @str varchar(20)='abc dne'
select reverse(right(reverse(@str),len(@str)-charindex(' ',reverse(@str))))

作者: ssp2009   发布时间: 2011-12-24

是从最后向前数的第一个空格 不是从最后数到第一个空格

作者: sxmonsy   发布时间: 2011-12-24

你仔细看,我不多说了。

作者: ssp2009   发布时间: 2011-12-24

引用楼主 sxmonsy 的回复:
如本查找某字段中最后一个字符到这个字符之前的第1个空格 之前的数据?

select reverse(left(reverse(col),charindex(' ',reverse(col))-1)) from tb

作者: dawugui   发布时间: 2011-12-24

SQL code
REVERSE(LEFT(REVERSE(col),CHARINDEX(' ',REVERSE(col))))
--其中楼主可能要判断有没有空格等问题

作者: wufeng4552   发布时间: 2011-12-24

SQL code
create table tb(col varchar(20))
insert into tb values('afjldas 0000')
insert into tb values('afjl 00')
insert into tb values('afjl asdkfj')
insert into tb values('af dsf sdf')
go

select col ,  reverse(left(reverse(col),charindex(' ',reverse(col))-1)) from tb 
 
drop table tb

/*
col                                       
-------------------- -------------------- 
afjldas 0000         0000
afjl 00              00
afjl asdkfj          asdkfj
af dsf sdf           sdf

(所影响的行数为 4 行)
*/

作者: dawugui   发布时间: 2011-12-24

如以上还不能满足楼主需求,请提供测试数据和想要的结果,以免误解。

作者: htl258   发布时间: 2011-12-24

SQL code

declare @sqlstr varchar(50)='abc def ghj'
select SUBSTRING(@sqlstr,1,CHARINDEX(' ',@sqlstr))

作者: szstephenzhou   发布时间: 2011-12-24