代码改变世界

实现Split功能的函数

2005-07-12 23:06  Jeffrey Lee  阅读(298)  评论(0编辑  收藏  举报
 /*
* Author: Jeffrey Lee
* Date: 2006-12-25
* Remark: 实现split功能 的函数
*
*/
CREATE FUNCTION F_Split ( @SourceSql VARCHAR(8000), @StrSeprate VARCHAR(10))
RETURNS @temp TABLE(TaskID VARCHAR(1000))

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