http://expert.csdn.net/Expert/topic/2298/2298541.xml?temp=.8383905
有一个字符型变量A='12.0,13.00,156.000,2315'
现要得到数值:12.0 13.00 156.000 2315请问如何用 SQL 写一通用语句 ,100' create function f_splitstr(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(F1 varchar(100))
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>''
insert @temp values(@SourceSql)
return
end
-执行
select * from dbo.f_splitstr('1,2,3,4',',')或者
declare @sql varchar(8000)
set @sql='1,2,3,4'
select @sql='select '+replace(@sql,',',' union all select ')
exec(@sql)
有一个字符型变量A='12.0,13.00,156.000,2315'
现要得到数值:12.0 13.00 156.000 2315请问如何用 SQL 写一通用语句 ,100' create function f_splitstr(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(F1 varchar(100))
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>''
insert @temp values(@SourceSql)
return
end
-执行
select * from dbo.f_splitstr('1,2,3,4',',')或者
declare @sql varchar(8000)
set @sql='1,2,3,4'
select @sql='select '+replace(@sql,',',' union all select ')
exec(@sql)
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货