SQL实现数组的形式

本文介绍两个SQL函数:Get_StrArrayLength用于根据分隔符计算字符串数组长度,Get_StrArrayStrOfIndex用于根据分隔符和指定位置获取字符串数组中的元素。这两个函数通过循环和子串操作实现了字符串的分割和检索,适用于需要解析复杂字符串数据的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--根据分隔符判断个数
CREATE FUNCTION Get_StrArrayLength
( @str varchar(5000) ,  --要分割的字符串
  @split varchar(10)  --分隔符号
  )
RETURNS int
AS
BEGIN
    DECLARE @location INT
    DECLARE @start INT
    DECLARE @length INT

    SET @str = LTRIM(RTRIM(@str))
    SET @location = CHARINDEX(@split, @str)
    SET @length = 1
    WHILE @location <> 0
        BEGIN
            SET @start = @location + 1
            SET @location = CHARINDEX(@split, @str, @start)
            SET @length = @length + 1
        END
    RETURN @length
END

--根据分隔符 和位置 ,取得元素
CREATE FUNCTION Get_StrArrayStrOfIndex
( @str varchar(5000) ,  --要分割的字符串
  @split varchar(10) ,  --分隔符号
  @index int --取第几个元素
  )
RETURNS varchar(5000)
AS
BEGIN
    DECLARE @location INT
    DECLARE @start INT
    DECLARE @next INT
    DECLARE @seed INT

    SET @str = LTRIM(RTRIM(@str))
    SET @start = 1
    SET @next = 1
    SET @seed = LEN(@split)

    SET @location = CHARINDEX(@split, @str)
    WHILE @location <> 0
        AND @index > @next
        BEGIN
            SET @start = @location + @seed
            SET @location = CHARINDEX(@split, @str, @start)
            SET @next = @next + 1
        END
    IF @location = 0
        SELECT  @location = LEN(@str) + 1
    RETURN SUBSTRING(@str,@start,@location-@start)
END
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值