SQL函数 将一个字段分隔成一个表的函数【搜藏】

例如一个字段[values]的值是:12,35,67,1235,43,87

调用这个函数之后:dbo.f_split(values,',')/*注意:前面记得加 dbo. 我调用的时候因为忘加老是说找不到函数,弄了很久呀*/

结果变成一个表:

[table]

a

--------

12

35

67

1235

43

87

将一个字段分隔为一个表的函数

ALTER function [dbo].[f_split](@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(a varchar(100))
/*--实现split功能 的函数
--date    :2005-4-20
--Author :Domino
*/
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
posted @ 2011-03-26 15:01  与卡  阅读(377)  评论(0编辑  收藏  举报