sql实现split函数的脚本

代码如下:

--创建一个函数,函数中有两个参数
Create FUNCTION [dbo].[SplitToTable]
(
@SplitString nvarchar(max),--输入的字符串
@Separator nvarchar(10)=' '--分割条件
)
--返回的数据为一个表
RETURNS @SplitStringsTable TABLE
(
[id] int identity(1,1),
[value] nvarchar(max)
)
AS
BEGIN
DECLARE @CurrentIndex int;--当前索引
DECLARE @NextIndex int;--下一个索引
DECLARE @ReturnText nvarchar(max);--返回内容
SELECT @CurrentIndex=1;--设置当前索引初始值为1
--当当前索引小于字符串长度时,执行循环体
WHILE(@CurrentIndex<=len(@SplitString))
BEGIN
--CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX函数调用方法如下:
--CHARINDEX ( expression1 , expression2 [ , start_location ] )
-- Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。
SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex);
IF(@NextIndex=0 OR @NextIndex IS NULL)
SELECT @NextIndex=len(@SplitString)+1;
--函数用法:SUBSTRING ( expression, start, length )
SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex);
INSERT INTO @SplitStringsTable([value]) VALUES(@ReturnText);
SELECT @CurrentIndex=@NextIndex+1;
END
RETURN;
END
go
--测试函数
select * FROm dbo.SplitToTable('a,b,c,d,e,f,g', ',')

(0)

相关推荐

  • 给Oracle添加split和splitstr函数的方法

    最近项目中有很多需要做批量操作的需求,客户端把一组逗号分隔的ID字符串传给数据库,存储过程就需要把它们分割,然后逐个处理. 以往的处理方式有如下几种: 1.在存储过程内写循环,逐个分析字符串中的ID,然后逐个处理.缺点:循环一次处理一个,如果每次判断都很多,效率将很受影响.适合每次处理要做单独判断的情况. 2.使用临时表,先调用一个存储过程将ID拆分并插入到临时表中,然后结合临时表可以写SQL一次处理多笔.缺点:需要插临时表,效率不高,数据量越大影响越严重. 以前的项目用的最多的还是第2中方式,

  • MySQL里实现类似SPLIT的分割字符串的函数

    下边的函数,实现了象数组一样去处理字符串. 一,用临时表作为数组 复制代码 代码如下: create function f_split(@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20)) as begin while(charindex(@split,@c)<>0) begin insert @t(col) values (substring(@c,1,charindex(@split,@c)-1)) se

  • SQL中实现SPLIT函数几种方法总结(必看篇)

    例1 代码如下 create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10)) returns @temp table(a varchar(100)) --实现split功能 的函数 --date :2003-10-14 as begin declare @i int set @SourceSql=rtrim(ltrim(@SourceSql)) set @i=charindex(@StrSeprate,@Sou

  • sql实现split函数的脚本

    复制代码 代码如下: --创建一个函数,函数中有两个参数 Create FUNCTION [dbo].[SplitToTable](@SplitString nvarchar(max),--输入的字符串@Separator nvarchar(10)=' '--分割条件)--返回的数据为一个表RETURNS @SplitStringsTable TABLE([id] int identity(1,1),[value] nvarchar(max))ASBEGINDECLARE @CurrentInd

  • SQL Server实现split函数分割字符串功能及用法示例

    本文实例讲述了SQL Server实现split函数分割字符串功能及用法.分享给大家供大家参考,具体如下: /* 函数名称:f_SplitToNvarchar 作用:实现split功能的函数 更新记录: 设计思路:将nvarchar类型字符结合的一个串,分隔到一张只有一列nvarchar类型的表里 */ CREATE FUNCTION [dbo].[f_SplitToNvarchar] ( @SourceSql NVARCHAR(MAX),--源分隔字符串 @StrSeprate VARCHAR

  • SQL Server COALESCE函数详解及实例

    SQL Server COALESCE函数详解 很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止,这个函数的确非常有用,本文主要讲解其中的一些基本使用:  首先看看联机丛书的简要定义: 返回其参数中第一个非空表达式语法: COALESCE ( expression [ ,...n ] ) 如果所有参数均为 NULL,则 COALESCE 返回 NULL.至少应有一个 Null 值为 NULL

  • mysql sql字符串截取函数详解

    mysql字符串截取函数主要有 left().right().substring().substring_index() 一.left()从左开始截取字符串 用法:left(str,len) ; str 要截取的字符串, len截取长度 例: SELECT LEFT("www.jb51.net",3) 结果:www 二.right()从右开始截取字符串 用法:right(str,len) ; str 要截取的字符串, len截取长度 例: SELECT RIGHT("www.

  • vbscript Split函数用法详解(字符串转数组函数)

    vbscript Split 函数用法 用法:传回数组 = Split(原始字串, 要找的字串, 拆成几个数组) 描述返回一个下标从零开始的一维数组,它包含指定数目的子字符串.语法Split(expression[, delimiter[, count[, compare]]]) 例如用逗号(,)分割字符串为数组 复制代码 代码如下: str="1,2,3,4"strarr=split(str,",")for i=0 to ubound(strarr)msgbox

  • 举例详解Python中的split()函数的使用方法

    函数:split() Python中有split()和os.path.split()两个函数,具体作用如下: split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list) os.path.split():按照路径将文件名和路径分割开 一.函数说明 1.split()函数 语法:str.split(str="",num=string.count(str))[n] 参数说明: str:   表示为分隔符,默认为空格,但是不能为空('').若字符串中没有分

  • SQL查询排名函数实例

    在实际开发中经常会遇到计算某个字段的排名的情况 如下表:totak_sales 现在又如此要求:按sales的逆序排序,要求添加一个sales_rank字段,显示排名顺序 方法: 复制代码 代码如下: SELECT a1.Name, a1.Sales, COUNT(a2.sales) Sales_Rank FROM Total_Sales a1, Total_Sales a2 WHERE a1.Sales <= a2.Sales or (a1.Sales=a2.Sales and a1.Name

  • SQL Server 常用函数使用方法小结

    之前就想要把一些 SQL 的常用函数记录下来,不过一直没有实行...嘿嘿... 直到今天用到substring()这个函数,C# 里面这个方法起始值是 0,而 SQL 里面起始值是 1.傻傻分不清楚... 这篇博客作为记录 SQL 的函数的使用方法,想到哪里用到哪里就写到哪里... SubString():用于截取指定字符串的方法.该方法有三个参数: 参数1:用于指定要操作的字符串. 参数2:用于指定要截取的字符串的起始位置,起始值为 1 . 参数3:用于指定要截取的长度. select sub

  • VBS教程:函数-Split 函数

    Split 函数 返回基于 0 的一维数组,其中包含指定数目的子字符串. Split(expression[, delimiter[, count[, start]]]) 参数 expression 必选项.字符串表达式,包含子字符串和分隔符.如果 expression 为零长度字符串,Split 返回空数组,即不包含元素和数据的数组. delimiter 可选项.用于标识子字符串界限的字符.如果省略,使用空格 ("") 作为分隔符.如果 delimiter 为零长度字符串,则返回包含

随机推荐