--这个查询需要注意的是qwer后的需要查询的字符串必须是一个空格,不能有的是一个空格有的是两个。也就是格式要固定。--定义参数create table #a (string varchar(max))declare @sql varchar(max)declare @a varchar(max)select @a ='asdf qwer zxcv 1234 qwer yuchor 3452 qwer abcd 7893'--这个是要查询的字符串---------------------------查询qwer后面的字符串----------------------------------------while charindex('qwer',@a)<>0beginselect @a=SUBSTRING ( @a,charindex('qwer',@a)+5,LEN(@a)-charindex('qwer',@a)-4)insert into #a values (@a)endselect SUBSTRING (LTRIM ( string) ,1,charindex(' ',LTRIM ( string))) as result from #a--查询结果 result zxcv yuchor abcd
CHARINDEX 返回字符串中指定表达式的起始位置。 语法 CHARINDEX ( expression1 , expression2 [ , start_location ] ) 参数 expression1 一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。 expression2 一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。 start_location 在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。例如:SELECT CHARINDEX( 'you ', 'I love you ')你利用一下就能实现。至于多个可以循环截取字符串。