码迷,mamicode.com
首页 > 数据库 > 详细

Sql Server分割字符串函数

时间:2015-08-06 01:48:25      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

-- Description: 分割字符串函数
-- SELECT * FROM dbo.Split(‘a,b,c,d,e,f,g‘,‘,‘)
-- =============================================

CREATE FUNCTION [dbo].[Split] ( @Text VARCHAR(8000) , @Sign NVARCHAR(4000) )
    RETURNS @tempTable TABLE ( ID INT IDENTITY(1, 1) PRIMARY KEY , [TEMPVAL] VARCHAR(4000) ) 
    AS BEGIN DECLARE @StartIndex INT --开始查找的位置
 DECLARE @FindIndex INT --找到的位置
 DECLARE @Content VARCHAR(4000) --找到的值

SET @StartIndex = 1 --T-SQL中字符串的查找位置是从1开始的

SET @FindIndex = 0 --开始循环查找字符串逗号
 WHILE (@StartIndex <= LEN(@Text)) BEGIN --返回值是找到字符串的位置

SELECT @FindIndex = CHARINDEX(@Sign, @Text, @StartIndex) --判断有没找到 没找到返回0
 IF (@FindIndex = 0
     OR @FindIndex IS NULL ) BEGIN --如果没有找到者表示找完了

SET @FindIndex = LEN(@Text) + 1 END --初始化下次查找的位置
SET @Content = LTRIM(RTRIM(SUBSTRING(@Text, @StartIndex, @FindIndex - @StartIndex)))

SET @StartIndex = @FindIndex + 1 --把找的的值插入到要返回的Table类型中

INSERT INTO @tempTable ([TEMPVAL])
VALUES (@Content) END RETURN END

 

Sql Server分割字符串函数

标签:

原文地址:http://www.cnblogs.com/NichkChang/p/4706221.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!