首页 数据库 mysql教程 SQL里面用自定义Split()完成个性化需求

SQL里面用自定义Split()完成个性化需求

Jun 07, 2016 pm 05:55 PM
split 自定义函数

为了满足需求自定义Split()在SQL中实现,代码很整洁,感兴趣的朋友可以参考下,或许对你学习sql语句有所帮助

代码如下:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE function [dbo].[SplitString]
(
@Input nvarchar(max),
@Separator nvarchar(max)=',',
@RemoveEmptyEntries bit=1
)
returns @TABLE table
(
[Id] int identity(1,1),
[Value] nvarchar(max)
)
as
begin
declare @Index int, @Entry nvarchar(max)
set @Index = charindex(@Separator,@Input)
while (@Index>0)
begin
set @Entry=ltrim(rtrim(substring(@Input, 1, @Index-1)))
if (@RemoveEmptyEntries=0) or (@RemoveEmptyEntries=1 and @Entry'')
begin
insert into @TABLE([Value]) Values(@Entry)
end
set @Input = substring(@Input, @Index+datalength(@Separator)/2, len(@Input))
set @Index = charindex(@Separator, @Input)
end
set @Entry=ltrim(rtrim(@Input))
if (@RemoveEmptyEntries=0) or (@RemoveEmptyEntries=1 and @Entry'')
begin
insert into @TABLE([Value]) Values(@Entry)
end
return
end

函数、表都建好了,下面调用测试一下吧:
代码如下:
declare @str1 varchar(max), @str2 varchar(max), @str3 varchar(max)
set @str1 = '1,2,3'
set @str2 = '1###2###3'
set @str3 = '1###2###3###'
select [Value] from [dbo].[SplitString](@str1, ',', 1)
select [Value] from [dbo].[SplitString](@str2, '###', 1)
select [Value] from [dbo].[SplitString](@str3, '###', 0)

结果,截个图来看一下:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

go语言中split方法有什么用 go语言中split方法有什么用 Jan 28, 2023 pm 01:37 PM

在go语言中,Split()方法用于分割字符串,可以使用分隔符将字符串划分为子字符串列表,而子字符串以切片的形式返回。Split()是strings包的方法,使用前需要先导入strings包,使用语法为“strings.Split(待分割的字符串, 分隔符)”。

如何在MySQL中使用Python编写自定义函数 如何在MySQL中使用Python编写自定义函数 Sep 22, 2023 am 08:00 AM

如何在MySQL中使用Python编写自定义函数MySQL是一种开源的关系型数据库管理系统,常用于存储和管理大量的数据。而Python作为一种强大的编程语言,能够与MySQL进行无缝的集成。在MySQL中,我们经常需要使用自定义函数来完成一些特定的计算或数据处理操作。本文将介绍如何使用Python编写自定义函数,并将其集成到MySQL中。对于编写自定义函数,

Java String中的split方法如何使用 Java String中的split方法如何使用 May 02, 2023 am 09:37 AM

String中split方法使用String的split()方法用于按传入的字符或字符串对String进行拆分,返回拆分之后的数组。1、一般用法用一般的字符,例如@或,等符号做分隔符时:Stringaddress="上海@上海市@闵行区@吴中路";String[]splitAddr=address.split("@");System.out.println(splitAddr[0]+splitAddr[1]+splitAddr[2]+splitAddr[3

如何解决 golang 中的 “undefined: bytes.Split” 错误? 如何解决 golang 中的 “undefined: bytes.Split” 错误? Jun 25, 2023 pm 02:02 PM

在Go语言中,bytes包是一个用于操作字节类型的包,并且它包含了许多有用的方法,比如Split()方法。不过,在使用Split()方法时,你可能会遇到“undefined:bytes.Split”的错误。这种错误通常是由于Go版本不兼容或缺少必要的依赖库等原因引起的。这篇文章将介绍一些解决这种错误的方法。方法一:升级Go版本如

split在python中的用法 split在python中的用法 Nov 17, 2023 am 10:13 AM

在Python中,split() 是一个常用的字符串方法,用于将字符串分割成子字符串,并返回一个包含这些子字符串的列表。该方法可以根据指定的分隔符将字符串拆分成多个部分。其基本语法是“str.split(separator, maxsplit)”,str是要分割的字符串,separator是分隔符,maxsplit是可选参数,表示最大分割次数。

深入解析JS自定义函数的声明和调用 深入解析JS自定义函数的声明和调用 Aug 03, 2022 pm 07:28 PM

函数是一组执行特定任务(具有特定功能)的,可以重复使用的代码块。除了使用内置函数外,我们也可以自行创建函数(自定义函数),然后在需要的地方调用这个函数,这样不仅可以避免编写重复的代码,还有利于代码的后期维护。

Linux中split命令详解 Linux中split命令详解 Feb 21, 2024 pm 06:06 PM

Linux中split命令详解split是Linux中一个常用的命令,它用于将一个文件分割成多个较小的文件。在本篇文章中,我们将详细介绍split命令的用法,并提供一些具体的代码示例。一、命令语法split命令的基本语法如下所示:split[选项][输入文件][输出文件前缀]选项:-:按照指定的行数分割文件,默认为1000行。-

Linux大文件分区:资深用户教你split命令轻松搞定 Linux大文件分区:资深用户教你split命令轻松搞定 Feb 26, 2024 am 08:10 AM

很荣幸与各位相识,本人乃游走于Linux领域十余载之专业人士,精通各类技巧及工具。今晚linux就该这么学,想和大家分享关于如何有效在Linux环境下对大文件进行分区的心得体会。1.面对巨型文件linux大文件分割,无所畏惧身为资深Linux用户,我擅长处理各类文件,无论其体积如何。有时候linux大文件分割,传输或备份超大文件或许会有些困扰,然而这对于Linux系统来说并不会造成太大挑战。2.利用split命令轻松分割文件在Linux系统下,split命令十分实用。简单敲一下达指令能够轻松地把

See all articles