SQL Server Split函数
--SQL Server Split函数 --Author:Kavin --说明: --支持分割符多字节 --使用方法 --Select * FROM DBO.F_SQLSERVER_SPLIT('1203401230105045','0') --select * from DBO.F_SQLSERVER_SPLIT('abc1234a12348991234','1234') --Select * from DBO.F_SQLSERVER_SPLIT('ABC',',') CREATE FUNCTION F_SQLSERVER_SPLIT(@Long_str varchar(8000),@split_str varchar(100)) RETURNS @tmp TABLE( ID inT IDENTITY PRIMARY KEY, short_str varchar(8000) ) AS BEGIN DECLARE @long_str_Tmp varchar(8000),@short_str varchar(8000),@split_str_length int SET @split_str_length = LEN(@split_str) IF CHARINDEX(@split_str,@Long_str)=1 SET @long_str_Tmp=SUBSTRING(@Long_str,@split_str_length+1,LEN(@Long_str)-@split_str_length) ELSE SET @long_str_Tmp=@Long_str IF CHARINDEX(REVERSE(@split_str),REVERSE(@long_str_Tmp))>1 SET @long_str_Tmp=@long_str_Tmp+@split_str ELSE SET @long_str_Tmp=@long_str_Tmp IF CHARINDEX(@split_str,@long_str_Tmp)=0 Insert INTO @tmp select @long_str_Tmp ELSE BEGIN WHILE CHARINDEX(@split_str,@long_str_Tmp)>0 BEGIN SET @short_str=SUBSTRING(@long_str_Tmp,1,CHARINDEX(@split_str,@long_str_Tmp)-1) DECLARE @long_str_Tmp_LEN INT,@split_str_Position_END int SET @long_str_Tmp_LEN = LEN(@long_str_Tmp) SET @split_str_Position_END = LEN(@short_str)+@split_str_length SET @long_str_Tmp=REVERSE(SUBSTRING(REVERSE(@long_str_Tmp),1,@long_str_Tmp_LEN-@split_str_Position_END)) IF @short_str<>'' Insert INTO @tmp select @short_str END END RETURN END
相关推荐
SQL Server并没有内置的`SPLIT`函数,但可以通过其他方式来实现这个功能。下面我们将详细介绍如何在SQL Server中实现类似`SPLIT`的功能。 ### 1. 使用内置的`STRING_SPLIT`函数(SQL Server 2016及以上版本) 从...
sqlserver 实现 行转列 split 分割的函数,具体使用方法写有在文件里。
SQL并没有内置的SPLIT函数,但可以通过自定义函数来实现这个功能。这里我们将讨论两种在SQL中实现SPLIT函数的方法。 **方法1** 首先,我们来看第一种实现方式,创建名为`f_split`的用户定义函数(UDF)。这个函数...
sqlserver 字符串分割表函数(新写法) fn_split 成表函数(带序号)
本文将详细介绍如何在SQL Server中实现`split`函数来分割字符串,并提供相关的使用示例。 首先,让我们了解这个自定义的`split`函数——`[dbo].[f_SplitToNvarchar]`。这个函数接受两个参数: 1. `@SourceSql`:这...
因此,本文将详细介绍一种针对SQL Server环境的自定义Split函数,该函数可以支持Ntext类型的大字符串输入。 #### 二、背景知识 在深入了解自定义Split函数之前,我们需要了解一些基础概念: 1. **Ntext类型**:...
Sql Server数据库中自定义拆分字符串函数Split()
sqlserver中根据某个字符切割字符串函数,比如根据逗号切割字符串,结果返回的是一个表值函数,这个函数返回结果字段包含Id和Value,Id为序号,Value为切割后的值
有时候我们在SQL Server中需要对一些字符串进行分隔,比如a,b,c ,按照‘,’进行分割,可以使用下边这个函数方法,新建方法如下: CREATE FUNCTION dbo.f_splitstr(@SourceSql NVARCHAR(MAX),@StrSeprate VARCHAR...
本文将详细介绍一个SQL Server自定义函数`f_split`,该函数能够有效地帮助用户完成字符串分割任务。 #### 函数概述 此自定义函数名为`f_split`,其主要功能是根据指定的分隔符来切割输入的字符串,并将结果存储在...
在SQL Server中,存储过程是预编译的SQL语句集合,它们封装了特定的数据库操作,提高了代码的重用性和执行效率。当涉及到处理多个值时,我们常常会遇到如何将这些值作为参数传递给存储过程的问题。本文将探讨在SQL ...
2. 利用 SQL Server 函数进行字符串拆分:可以使用 SQL Server 的字符串函数,例如 CHARINDEX、LEFT、RIGHT、LEN 等函数对字符串进行拆分。 3. 将拆分后的数据写入到临时表中:将拆分后的数据写入到第 1 步中创建的...
本文将详细介绍如何在SQL Server中创建自定义的分隔函数以及使用内置的`STRING_SPLIT`函数。 首先,我们来看如何创建一个自定义的分隔函数。以下是一个示例,名为`dbo.f_splitstr`: ```sql CREATE FUNCTION dbo.f...
除了自定义函数,SQL Server还内置了一些内置的字符串切割函数,如`STRING_SPLIT()`(SQL Server 2016及以上版本)、`PARSENAME()`、`LEFT()`、`RIGHT()`、`SUBSTRING()`等。`STRING_SPLIT()`可以将字符串按指定分隔...
总的来说,CROSS APPLY和OUTER APPLY为SQL Server提供了更灵活的数据处理能力,特别是处理涉及复杂转换或依赖于其他表字段的表值函数的情况。通过理解这两种运算符的工作原理,我们可以编写出更加高效且适应性强的...
- Oracle的`REGEXP_LIKE`支持正则表达式匹配,SQL Server则需使用`PATINDEX`和`LIKE`组合,或引入`fn_split_delimited_string`等自定义函数。 4. **分组和聚合**: - Oracle的`RANK`, `DENSE_RANK`和`ROW_NUMBER`...
描述中没有提供具体信息,但从标签"sql-split2.doc"来看,我们可以推测这可能是一个与SQL相关的话题,尤其是关于在SQL Server 2000中使用OpenXML函数来处理XML数据的方法。 在提供的内容中,我们看到了一个名为`...
在SQL Server中,当需要将一个字符串按照特定的分隔符进行拆分成多个子字符串时,通常会遇到问题,因为SQL Server的标准库中并没有提供内置的Split函数。为了解决这个问题,开发人员经常需要创建自定义的函数来实现...
本篇文章将详细介绍如何利用SQL Server自定义函数实现字符串拆分并转化为表格形式的功能。 #### 核心知识点 1. **自定义函数(User Defined Function, UDF)**: - 在SQL Server中,可以通过创建自定义函数来执行...