JSON提取值

问题描述

我在表中有此数据:

{ "keys": [ "00170000007u8uJ" ] }

我只需要在sql Server 2016 select查询提取值00170000007u8uJ

解决方法

这应该做

declare @json           nvarchar(max)=N'{ "keys": [ "00170000007u8uJ" ] }';

select [value] from openjson(json_query(@json,N'$.keys'));

如果JSON在表中,则应这样

create table #temp_json(json_col        nvarchar(max));
insert #temp_json(json_col) values (N'{ "keys": [ "00170000007u8uJ" ] }');

select [value] 
from
  #temp_json tj
 cross apply
  openjson(json_query(tj.json_col,N'$.keys'));