【SQL Server自定义字符串分割函数——Split】教程文章相关的互联网学习教程文章

sql server 函数切割字符串My_split

--实现split功能的函数 (‘a,b,c,d‘)转为记录 --说明:@aString,字符串,如“27,28,29”;@pattern,分隔标志,如“,” -- 例:select * from a where ID in (select Myvalues FROM my_split(@ID, ‘,‘)) -- 例:select Myvalues from dbo.My_split(‘a,b,c,d‘,‘,‘) create function [dbo].[My_split](@aString varchar(8000),@pattern varchar(10)) returns @temp table([Sid] [int] IDENTITY (1,1) NOT NULL ...

MSSQL—字符串分离(Split函数)【图】

前面提到了记录合并,有了合并需求肯定也会有分离需求,说到字符串分离,大家肯定会想到SPLIT函数,这个在.NET,Java和JS中都有函数,很可惜在SQL SERVER中没有,我们只能自己来写这么一个函数。 首先来分析一下怎么写这个函数,以之前合并的字符串为例,“张三,李四,王五,钱六,赵七,Tom,Amy,Joe,Leo”,现在要将此字符串按照“,”进行分离得到一组数据,现在可以得出这个函数传入变量有两个,一个是目标字符串,我们定义为@string...

SQLSERVER SPLIT【代码】

FUNCTION dbo.SPLIT(@Long_str NVARCHAR(MAX),@split_str NVARCHAR(100)) RETURNS @tmp TABLE( ID inT IDENTITY PRIMARY KEY, short_str NVARCHAR(MAX) ) AS BEGIN DECLARE @short_str NVARCHAR(MAX),@split_str_length int,@split_str_Position_Begin intSET @split_str_length = LEN(@split_str) SET @Long_str=REPLACE(REPLACE(@Long_str,CHAR(10),‘‘),CHAR(13),‘‘)IF CHARIN...

SQL Server自定义字符串分割函数——Split

USE [Test]2 GO3 /****** Object: UserDefinedFunction [dbo].[Split] Script Date: 2017/4/14 23:04:08 ******/4 SET ANSI_NULLS ON5 GO6 SET QUOTED_IDENTIFIER ON7 GO8 CREATE FUNCTION [dbo].[Split](@separator VARCHAR(64)=‘,‘,@string NVARCHAR(max))9 RETURNS @ResultTab TABLE ( 10 Id INT , 11 Res NVARCHAR(500) 12 ) 13 AS 14 BEGIN 15 DECLARE @Num INT 16 17 IF(@string IS NOT ...

SQL Server ->> 条件筛选做法之 -- IN(VALUE1,VALUE2,...)与INNER JOIN STRING_SPLIT()性能对比【图】

在以逗号拼接而成的字符串,传入给IN字句的元素字符串中包涵了1400多个元素 两种做法分别为 AND e.ssPfCityId IN ( SELECT CAST(value AS INT) FROM STRING_SPLIT(‘110000,310000,120000,210100,210200,210400,210800,211200,350100,350500,350200,350800,350700,350900,441200,441300,440500,445100,450100,451000,450800,450300,451100,450200,450900,450500,450400,...

sqlserver 字符串split

value from TF_NJVALUES(‘3C457A2D-188B-4D99-A822-2968054E1FB8,3C457A2D-188B-4D99-A822-2968054E1FB8‘) CREATE FUNCTION TF_NJVALUES ( @P0 varchar(max) --需要截取的字符 ) RETURNS @OUT_TABLE TABLE(value VARCHAR(max)) AS BEGIN DECLARE @SQL varchar(max),@output varchar(50)set @P0=case when RIGHT(@P0,1)=‘,‘ then @P0 else @P0+‘,‘ endwhile CHARINDEX(‘,‘,@P0)>0beginset @output=LEFT(@P0,CHARIND...

sql server split函数

---------------------------------------------------------------------- -- 版权:2011 -- 时间:2011-06-17 -- 用途:切分字符串,将忽略连续分隔符和分隔符之间的空字符 -- 用法:SELECT * FROM [dbo].[WF_Split](‘a,b,c,d‘,‘,‘); -- 返回表结构: -- id 自增主键 -- rs 分隔符切分的每个段落 ---------------------------------------------------------------------- USE QPTreasureDB GO IF EXISTS (SEL...

SQL Server用SPLIT函数分割字符串【图】

SELECT *FROM Split(‘1,2,w,e,q‘, ‘,‘); SQL Server用SPLIT函数分割字符串标签:sel body es2017 分享图片 字符 sql .com alt server 本文系统来源:http://www.cnblogs.com/sanday/p/8057603.html

Sql Server字符串拆分(Split)方法汇总

100),@sql varchar(1000) set @s=‘1,2,3,4,5,6,7,8,9,10‘ set @sql=‘select col=‘‘‘+ replace(@s,‘,‘,‘‘‘ union all select ‘‘‘)+‘‘‘‘ PRINT @sql exec (@sql)--方法1:循环截取法 if exists (select * from dbo.sysobjects where id = object_id(N‘[dbo].[f_splitSTR]‘) and xtype in (N‘FN‘, N‘IF‘, N‘TF‘)) drop function [dbo].[f_splitSTR] GOCREATE FUNCTION f_splitSTR( @s varchar(8000), -...

SQL Server自定义字符串分割函数——Split【代码】【图】

1 USE [Test]2 GO3 /****** Object: UserDefinedFunction [dbo].[Split] Script Date: 2017/4/14 23:04:08 ******/4 SET ANSI_NULLS ON5 GO6 SET QUOTED_IDENTIFIER ON7 GO8 CREATE FUNCTION [dbo].[Split](@separator VARCHAR(64)=‘,‘,@string NVARCHAR(max))9 RETURNS @ResultTab TABLE ( 10 Id INT , 11 Res NVARCHAR(500) 12 ) 13 AS 14 BEGIN 15 DECLARE @Num INT 16 17 IF(@string IS NO...

sqlserver split函数【代码】

FUNCTION [dnt_split] ( @splitstring NVARCHAR(4000), @separator CHAR(1) = ‘,‘ ) RETURNS @splitstringstable TABLE ( [item] NVARCHAR(200) ) AS BEGIN DECLARE @currentindex INT DECLARE @nextindex INT DECLARE @returntext NVARCHAR(200) SELECT @currentindex=1 WHILE(@currentindex<=datalength(@splitstring)/2) BEGIN SELECT @nextindex=charindex(@separator,@splitstring,@cur...

MS SQL Server的STRING_SPLIT和STRING_AGG函数【代码】【图】

@str NVARCHAR(MAX) = N‘ADS,ADFD,AGF,SDFGSFD,DSFG,RET,TRY,T,ADF,GSF,UY,QWERQ‘把它转存为表: DECLARE @dump_data AS TABLE([value] NVARCHAR(MAX)) INSERT INTO @dump_data ([value]) SELECT [value] FROM STRING_SPLIT(@str,‘,‘)Source Code 反转,需要把临时表这列[value] 转换为一个字符串: SELECT STRING_AGG([value], ‘,‘) FROM @dump_dataSource Code 其实STRING_AGG这函数,还可以对新串联的字符进行排序...

SqlServer 中字符串 Split 的新用法【代码】【图】

declare @dt1 datetime, @dt2 datetime, @dt3 datetime, @dt4 datetimedeclare @tb1 table (str varchar(100)) declare @tb2 table (str varchar(100)) declare @tb3 table (str varchar(100))declare @c1 int, @c2 int,@c3 int select @c1 = 0, @c2 = 0, @c3 = 0 select @dt1 = getdate()while @c1 < 1000 begininsert into @tb1(str)select *from dbo.f_splitStrByCharIndex(‘1,2,3,4,5‘)select @c1 = @c1 + 1 endselect ...

SQLSERVER2008中CTE的Split与CLR的性能比较&amp;lt;转&amp;gt;【图】

之前曾有一篇POST是关于用CTE实现Split,这种方法已经比传统的方法高效了。今天我们就这个方法与CLR实现的Split做比较。在CLR实现Split函数的确很简单,dotnet framework本身就有这个function了。 我们新建一个c#-数据库工程,然后建立一个用户自定义函数,Co 之前曾有一篇POST是关于用CTE实现Split,这种方法已经比传统的方法高效了。今天我们就这个方法与CLR实现的Split做比较。在CLR实现Split函数的确很简单,dotnet framework本...

sqlserver字符串拆分(split)方法汇总

--方法0:动态SQL法 declare @s varchar(100),@sql varchar(1000) set @s=1,2,3,4,5,6,7,8,9,10 set @sql=select col=+ replace(@s,,, union all select )+ PRINT @sql exec (@sql) if exists (select * from dbo.sysobjects where id = o--方法0:动态SQL法declare @s varchar(100),@sql varchar(1000)set @s=1,2,3,4,5,6,7,8,9,10set @sql=select col=+ replace(@s,,, union all select )+PRINT @sqlexec (@sql)if exists (selec...