其实你完全可以写个自定义函数就OK了 。 =================================================================== create function f_split ( @c varchar(2000), --要分割的字符串 @split varchar(2)--分隔符号 ) returns @t table(col varchar(20)) as begin while(charindex(@split,@c)<>0) begin insert @t(col) values (substring(@c,1,charindex(@split,@c)-1)) set @c = stuff(@c,1,charindex(@split,@c),'') end insert @t(col) values (@c) return end go ------------------------------------------------------------ declare @str varchar(100) set @str = 'a.bb.ccc' select * from dbo.f_split(@str,'.')
declare @str varchar(100)--定义变量@str set @str = 'a.bb.ccc' --@str初始值为a.bb.cc select substring(@str,number,charindex('.',@str+'.',number) - number) as col --charindex查询.在@str的位置,substring截取字段@str from master..spt_values--master数据库里的spt_values表 where [type] = 'p' and number between 1 and len(@str)--len(@str)为变量str的长度 and substring('.'+@str,number,1) = '.' 解释:master..spt_values表的type字段值为p的,对应,number字段的值是从1至255, 则where条件中,会找到所有满足条件的number值,1行只有1个numbe值,故select的结果形式是: a bb ccc