深圳网站建设、深圳建网站、网站建设公司定制属于您的高端个性化网站!

搜索深圳网站建设相关案例及相关信息 服务热线:13530005572/15112579390
首页 > 网站建设知识 > SQL Server实现Split函数将字符串分隔转换成数据表

SQL Server实现Split函数将字符串分隔转换成数据表

  • 所属分类:网站建设知识
  • 作者: 利来w66(中国)有限公司
  • 更新时间: 2015-1-23 14:21:08
  • 返回列表
需求
C#语言中有内置的字符串函数Split()可以轻松实现分隔将类似 1,2,3,4 的字符串变成数组,然后进行处理,但是SQL Server默认没有这种内置的支持。

实现
需要通过自定义函数来实现,思路就是创建表值函数,返回一个分隔后的数据表,然后查询这个返回的表即可。

代码如下
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON

GO

ALTER FUNCTION [dbo].[SplitToTable_Func]

  (

      @SplitString varchar(max),

      @Separator nvarchar(10)=' '

  )

 RETURNS @SplitStringsTable TABLE

 (

  [id] int identity(1,1),

  [value] varchar(max)

 )

 AS

 BEGIN

    IF @SplitString<>''

    BEGIN

     DECLARE @CurrentIndex int

     DECLARE @NextIndex int

     DECLARE @ReturnText varchar(max)

     SELECT @CurrentIndex=1

     WHILE(@CurrentIndex<=len(@SplitString)+1)

         BEGIN

             SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex)

             IF(@NextIndex=0 OR @NextIndex IS NULL)

                 SELECT @NextIndex=len(@SplitString)+1

                 SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex)

                 INSERT INTO @SplitStringsTable([value]) VALUES(@ReturnText)

                 SELECT @CurrentIndex=@NextIndex+1

             END

    END

    RETURN

 END

调用方法
SELECT * FROM dbo.SplitToTable_Func('1,2,3,4',',')

相关推荐

您值得信任的网站建设专家!

为其提供系统的基于互联网的品牌行销策略 、 创意执行 、 追踪运营服务 。