PCB MS SQL 将字符串分割为表变量(表值函数)

Posted pcbren

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PCB MS SQL 将字符串分割为表变量(表值函数)相关的知识,希望对你有一定的参考价值。

 

Create  FUNCTION [dbo].[SplitTable](
@s   varchar(max),     --待分拆的字符串
@split varchar(10)     --数据分隔符
)RETURNS @re TABLE(id int IDENTITY(1,1), col varchar(max)) --建立临时表保存分割后的字符
AS
BEGIN
     DECLARE @splitlen int
     SET @splitlen=LEN(@split+\'a\')-2
     WHILE CHARINDEX(@split,@s)>0
     BEGIN
        INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1))
        SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,\'\')
     END
     INSERT @re VALUES(@s)
     RETURN
END

 

示例:

SELECT * FROM [dbo].[SplitTable](\'喷锡,沉金,镀金,OSP\',\',\')

以上是关于PCB MS SQL 将字符串分割为表变量(表值函数)的主要内容,如果未能解决你的问题,请参考以下文章

PCB MS SQL CLR聚合函数(函数作用,调用顺序,调用次数) CLR说明

SQL Server - 将标量函数转换为表值函数

通过在 SQL Server 2000 中传递变量参数来加入表值函数

sqlserver常用表值函数

在sql查询中使用局部变量作为开关是不好的做法

AWS Athena 无法将 .csv 整数转换为表值