SQL里面用自定义Split()完成个性化需求
SQL 自定义 完成 需求 里面 个性化 split
2023-06-13 09:14:46 时间
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
CREATEfunction[dbo].[SplitString]
(
@Inputnvarchar(max),
@Separatornvarchar(max)=",",
@RemoveEmptyEntriesbit=1
)
returns@TABLEtable
(
[Id]intidentity(1,1),
[Value]nvarchar(max)
)
as
begin
declare@Indexint,@Entrynvarchar(max)
set@Index=charindex(@Separator,@Input)
while(@Index>0)
begin
set@Entry=ltrim(rtrim(substring(@Input,1,@Index-1)))
if(@RemoveEmptyEntries=0)or(@RemoveEmptyEntries=1and@Entry<>"")
begin
insertinto@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=1and@Entry<>"")
begin
insertinto@TABLE([Value])Values(@Entry)
end
return
end
函数、表都建好了,下面调用测试一下吧:
declare@str1varchar(max),@str2varchar(max),@str3varchar(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)
结果,截个图来看一下:
相关文章
- 都2022年了,Python继续霸榜,SQL写得溜,面试或能加分
- 教你如何处理SQL Server数据库附加失败的处理方法
- SQL Server数据库按百分比查询出表中的记录数
- 简单介绍SQL Server里的闩锁
- SQL SERVER 分组求和sql语句
- Ibatis中的动态SQL:isNotNull,isPropertyAvailable,isNotEmpty用法详解编程语言
- 如何使用SQL Server导出数据(sqlserver导出数据sql)
- 优化Oracle SQL优化:提升性能的先进方法(oracle当前sql)
- 数据库利用SQL Server使用关系数据库的技巧(sqlserver关系)
- Oracle中的精彩递归SQL(oracle递归sql)
- MySQL导出SQL数据的工具推荐(mysql导出sql工具)
- 环境SQL Server 就绪,迎接生产环境挑战!(sqlserver 生产)
- 间SQL Server服务空间:解决技术问题的必备利器(sqlserver服务空)
- SQL Server拼接字段解密大法(sqlserver拼字段)
- SQL Server及其对年龄段人群的关注(sqlserver 年龄)
- 字符SQL Server中字符串分割技术实现(sqlserver切割)
- 在MySQL命令行中导入SQL文件(mysql命令行导入sql文件)
- MySQL实现行转列的SQL操作(mysql中sql行转列)
- Oracle与SQL数据库间的互联互通(oracle与sql互通)
- 使用Oracle SQL解答聪明人的问题(oracle sql题)
- 解决Oracle SQL遭遇锁死的思路(oracle sql锁死)
- Oracle SQL提交轻松实现数据库信息更新(oracle sql提交)
- 运算深入理解Oracle SQL中的取模运算(oracle sql取模)
- Oracle SQL 空虚一片,尽头何处寻(oracle sql为空)
- sqlserver支持定位当前页,自定义排序的分页SQL(拒绝动态SQL)
- asp.net连接查询SQL数据库并把结果显示在网页上(2种方法)