【SQL SERVER】Fn_SplitStr 逗号相隔的字符串返回多行

CREATE FUNCTION [dbo].[Fn_SplitStr]
(
@param VARCHAR(MAX), 
@delimiter CHAR(1) = ','
)
RETURNS @t TABLE (val varchar(100), seq INT)
AS
BEGIN
SET @param += @delimiter;
WITH a AS
(
SELECT CAST(1 AS BIGINT) f, CHARINDEX(@delimiter, @param) t, 1 seq
UNION ALL
SELECT t + 1, CHARINDEX(@delimiter, @param, t + 1), seq + 1
FROM a
WHERE CHARINDEX(@delimiter, @param, t + 1) > 0
)
INSERT @t
SELECT SUBSTRING(@param, f, t - f) , seq FROM a
OPTION (MAXRECURSION 0)
RETURN
END
GO

运行结果如下:
在这里插入图片描述

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-25 21:46:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-25 21:46:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-25 21:46:04       82 阅读
  4. Python语言-面向对象

    2024-01-25 21:46:04       91 阅读

热门阅读

  1. IO流-处理流之——缓冲流

    2024-01-25 21:46:04       54 阅读
  2. C++笔记(三)

    2024-01-25 21:46:04       51 阅读
  3. 【家庭版windows远程桌面连接攻略】

    2024-01-25 21:46:04       59 阅读
  4. layui select onchange事件处理

    2024-01-25 21:46:04       54 阅读
  5. 【dpdk】Getting Started Guide for Linux DPDK

    2024-01-25 21:46:04       49 阅读
  6. 【MySQL】表列数和行大小限制详解

    2024-01-25 21:46:04       51 阅读