从json提取array ,实现json炸裂函数

兼容级别不支持openjson,只能自主实现功能了

  1. 使用方法,mssql炸裂函数
    SELECT Id,item
    FROM temp031_t
    CROSS APPLY [dbo].getJsonArray

  2. 函数
    CREATE FUNCTION [dbo].[getJsonArray]
    (
    @str nvarchar(max),
    @dpath nvarchar(20)
    )
    RETURNS @splitstringstable TABLE
    (
    [item] nvarchar(200)
    )
    AS
    BEGIN
    --declare @s varchar(1000)='{"a":["1","2","3"],"b":["b1","b2"]}';
    declare @s1 nvarchar(max)=replace(JSON_QUERY(@str,@dpath),'"','');

    insert into @splitstringstable
    SELECT [item]
    FROM split( substring(@s1,2,len(@s1) -2) , ',') a;

    RETURN
    END

posted @ 2025-05-14 15:39  自在现实  阅读(12)  评论(0)    收藏  举报