`

SQL Server Split函数

 
阅读更多

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`函数,但可以通过其他方式来实现这个功能。下面我们将详细介绍如何在SQL Server中实现类似`SPLIT`的功能。 ### 1. 使用内置的`STRING_SPLIT`函数(SQL Server 2016及以上版本) 从...

    sqlserver 实现 行转列 split 分割的函数

    sqlserver 实现 行转列 split 分割的函数,具体使用方法写有在文件里。

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

    SQL并没有内置的SPLIT函数,但可以通过自定义函数来实现这个功能。这里我们将讨论两种在SQL中实现SPLIT函数的方法。 **方法1** 首先,我们来看第一种实现方式,创建名为`f_split`的用户定义函数(UDF)。这个函数...

    sqlserver 字符串分割表函数(新写法) fn_split 成表函数(带序号)

    sqlserver 字符串分割表函数(新写法) fn_split 成表函数(带序号)

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

    本文将详细介绍如何在SQL Server中实现`split`函数来分割字符串,并提供相关的使用示例。 首先,让我们了解这个自定义的`split`函数——`[dbo].[f_SplitToNvarchar]`。这个函数接受两个参数: 1. `@SourceSql`:这...

    SQL的split函数(自定义)new

    因此,本文将详细介绍一种针对SQL Server环境的自定义Split函数,该函数可以支持Ntext类型的大字符串输入。 #### 二、背景知识 在深入了解自定义Split函数之前,我们需要了解一些基础概念: 1. **Ntext类型**:...

    Sql Server数据库中自定义拆分字符串函数Split()

    Sql Server数据库中自定义拆分字符串函数Split()

    sqlserver中根据某个字符切割字符串函数

    sqlserver中根据某个字符切割字符串函数,比如根据逗号切割字符串,结果返回的是一个表值函数,这个函数返回结果字段包含Id和Value,Id为序号,Value为切割后的值

    SQL Server分隔函数实例详解

    有时候我们在SQL Server中需要对一些字符串进行分隔,比如a,b,c ,按照‘,’进行分割,可以使用下边这个函数方法,新建方法如下:  CREATE FUNCTION dbo.f_splitstr(@SourceSql NVARCHAR(MAX),@StrSeprate VARCHAR...

    sqlserver切割字符窜的函数

    本文将详细介绍一个SQL Server自定义函数`f_split`,该函数能够有效地帮助用户完成字符串分割任务。 #### 函数概述 此自定义函数名为`f_split`,其主要功能是根据指定的分隔符来切割输入的字符串,并将结果存储在...

    sqlserver的存储过程与 where in 多值参数

    在SQL Server中,存储过程是预编译的SQL语句集合,它们封装了特定的数据库操作,提高了代码的重用性和执行效率。当涉及到处理多个值时,我们常常会遇到如何将这些值作为参数传递给存储过程的问题。本文将探讨在SQL ...

    SQLServer逗号分隔的字符串转换成表

    2. 利用 SQL Server 函数进行字符串拆分:可以使用 SQL Server 的字符串函数,例如 CHARINDEX、LEFT、RIGHT、LEN 等函数对字符串进行拆分。 3. 将拆分后的数据写入到临时表中:将拆分后的数据写入到第 1 步中创建的...

    SQL Server分隔函数

    本文将详细介绍如何在SQL Server中创建自定义的分隔函数以及使用内置的`STRING_SPLIT`函数。 首先,我们来看如何创建一个自定义的分隔函数。以下是一个示例,名为`dbo.f_splitstr`: ```sql CREATE FUNCTION dbo.f...

    SQL Server字符串切割函数

    除了自定义函数,SQL Server还内置了一些内置的字符串切割函数,如`STRING_SPLIT()`(SQL Server 2016及以上版本)、`PARSENAME()`、`LEFT()`、`RIGHT()`、`SUBSTRING()`等。`STRING_SPLIT()`可以将字符串按指定分隔...

    SQL Server CROSS APPLY和OUTER APPLY的应用详解

    总的来说,CROSS APPLY和OUTER APPLY为SQL Server提供了更灵活的数据处理能力,特别是处理涉及复杂转换或依赖于其他表字段的表值函数的情况。通过理解这两种运算符的工作原理,我们可以编写出更加高效且适应性强的...

    异种数据库函数和标准SQL语法比较Oracle与SqlServer.rar

    - Oracle的`REGEXP_LIKE`支持正则表达式匹配,SQL Server则需使用`PATINDEX`和`LIKE`组合,或引入`fn_split_delimited_string`等自定义函数。 4. **分组和聚合**: - Oracle的`RANK`, `DENSE_RANK`和`ROW_NUMBER`...

    sql-split2.doc

    描述中没有提供具体信息,但从标签"sql-split2.doc"来看,我们可以推测这可能是一个与SQL相关的话题,尤其是关于在SQL Server 2000中使用OpenXML函数来处理XML数据的方法。 在提供的内容中,我们看到了一个名为`...

    SQLServer中的切割字符串SplitString函数

    在SQL Server中,当需要将一个字符串按照特定的分隔符进行拆分成多个子字符串时,通常会遇到问题,因为SQL Server的标准库中并没有提供内置的Split函数。为了解决这个问题,开发人员经常需要创建自定义的函数来实现...

    sqlserver实现字符拆解成表格的形式

    本篇文章将详细介绍如何利用SQL Server自定义函数实现字符串拆分并转化为表格形式的功能。 #### 核心知识点 1. **自定义函数(User Defined Function, UDF)**: - 在SQL Server中,可以通过创建自定义函数来执行...

Global site tag (gtag.js) - Google Analytics