陈海洋

专注是一种精神。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

自定义SQL的Split函数

Posted on 2010-10-20 14:56  txst(陈海洋)  阅读(419)  评论(0编辑  收藏  举报

 

-- =============================================
--
Author: hy
--
Create date: 2008-12-03
--
Description: split函数
--
Debug:select * from dbo.Fun_Split('ABC:BC:C:D:E',':')
--
=============================================
CREATE FUNCTION [dbo].[Fun_Split]
(
@SourceSql VARCHAR(8000) ,
@StrSeprate VARCHAR(10)
)
RETURNS @TEMP_Table TABLE ( a VARCHAR(100) )
AS
BEGIN
DECLARE @i INT
SET @SourceSql = RTRIM(LTRIM(@SourceSql))
SET @i = CHARINDEX(@StrSeprate, @SourceSql)
WHILE @i >= 1
BEGIN
INSERT @TEMP_Table
VALUES ( LEFT(@SourceSql, @i - 1) )
SET @SourceSql = SUBSTRING(@SourceSql, @i + 1,
LEN(@SourceSql) - @i)
SET @i = CHARINDEX(@StrSeprate, @SourceSql)
END
IF @SourceSql <> '\'
INSERT @TEMP_Table
VALUES ( @SourceSql )

RETURN
END