1、定义json字符串并创建所需的临时表

-- 获取的json字符串
DECLARE @jsonstr NVARCHAR(max) ='[{"no": "001","result": "OK"},{"no": "002","result": "NG"}]'

-- 创建临时表
CREATE TABLE #tmpParamert(   
		id [INT] IDENTITY (1,1) NOT NULL,    
		no NVARCHAR(20),
		result NVARCHAR(10)
) 

 2、解析Json字符串并新增到临时表

-- 插入到临时表
INSERT INTO #tmpParamert(no,result)
SELECT JSON_VALUE(value,'$.no') AS no,JSON_VALUE(value,'$.result') AS result
FROM openjson(@jsonstr) AS A  

3、查询临时表 或 获取表中某条数据

-- 查询临时表
-- select * from #tmpParamert

declare @no NVARCHAR(20);
declare @result NVARCHAR(10);
declare @count int;             
declare @i int; 
select @count = count(1) from #tmpParamert;
set @i = 1;

--循环临时表取数据
WHILE (@count >= @i)
BEGIN 
	SELECT @no=no,@result=result FROM #tmpParamert WHERE id = @i;
    -- 中间判断相关内容等
    SET @i = @i + 1;
END

 4、最后用完将临时表删除

--最后用完需删除临时表
DROP TABLE #tmpParamert;

附:若使用变量表则可忽略最后一步删除动作,例如:

-- 创建临时表
Declare @tmpParamert TABLE(   
		id [INT] IDENTITY (1,1) NOT NULL,    
		no NVARCHAR(20),
		result NVARCHAR(10)
) 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐