create function [dbo].[f_split](@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(a varchar(100))
--实现split功能 的函数
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 f_split(ab-cd-erf,‘-’)这样没有问题,
但调用select f_split(应用行业代码,';') FROM [master].[dbo].[分列测试]会报错,'f_split' 不是可以识别的 内置函数名称。这样的自定义函数应该怎样调用?
------解决思路----------------------
我看你是想用个拼接是吧?
那你可以试下这样写
select *
FROM [master].[dbo].[分列测试] a
cross apply f_split(a.应用行业代码,';') as b