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

sql server split函数

时间:2017-08-13 22:20:30      阅读:1096      评论:0      收藏:0      [点我收藏+]

标签:cti   source   nbsp   and   操作   returns   string   部分   select   

----------------------------------------------------------------------
-- 版权:2011
-- 时间:2011-06-17
-- 用途:切分字符串,将忽略连续分隔符和分隔符之间的空字符
-- 用法:SELECT * FROM [dbo].[WF_Split](‘a,b,c,d‘,‘,‘);
--    返回表结构:
--    id    自增主键
--    rs    分隔符切分的每个段落
----------------------------------------------------------------------
USE QPTreasureDB
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N‘[dbo].[WF_Split]‘) AND type in (N‘FN‘, N‘IF‘, N‘TF‘, N‘FS‘, N‘FT‘))
DROP FUNCTION dbo.[WF_Split]
GO
----------------------------------------------------------------
CREATE FUNCTION [dbo].[WF_Split]
(
  @strSource NVARCHAR(4000),  --要操作的字符串
  @strSeparator CHAR(1)     --分隔符,单字节
)
RETURNS @tbResult TABLE(id INT IDENTITY(1,1),rs NVARCHAR(1000))
WITH ENCRYPTION AS
BEGIN
DECLARE @dwIndex INT ,@strResult NVARCHAR(1000);
SET @strSource = RTRIM(LTRIM(@strSource)); -- 消空格
SET @dwIndex = CHARINDEX(@strSeparator,@strSource);  -- 取得第一个分隔符的位置

WHILE @dwIndex>0
BEGIN
SET @strResult = LTRIM(RTRIM(LEFT(@strSource,@dwIndex-1)));
IF @strResult IS NULL OR @strResult = ‘‘ OR @strResult = @strSeparator
BEGIN
SET @strSeparator = SUBSTRING(@strSource,@dwIndex+1,LEN(@strSource)-@dwIndex); --将要操作的字符串去除已切分部分
SET @dwIndex = CHARINDEX(@strSeparator,@strSource); --循环量增加
    CONTINUE;
END

INSERT @tbResult VALUES(@strResult);
SET @strSource = SUBSTRING(@strSource,@dwIndex+1,LEN(@strSource)-@dwIndex); --将要操作的字符串去除已切分部分
SET @dwIndex=CHARINDEX(@strSeparator,@strSource); --循环量增加
END
--处理最后一节
IF @strSource IS NOT NULL AND LTRIM(RTRIM(@strSource)) <> ‘‘ AND @strSource <> @strSeparator
BEGIN
INSERT @tbResult VALUES(@strSource)
END

RETURN;
END




sql server split函数

标签:cti   source   nbsp   and   操作   returns   string   部分   select   

原文地址:http://www.cnblogs.com/yuanxiaoping_21cn_com/p/7354954.html

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