如何实现 OPENJSON 将 JSON 代码作为列内的文本如何在 AZURE SQL Dataware House 中的表列上使用 OPENJSON?

问题描述

例如:原始数据

npm run production

想要在折扣上应用 OPEnjsON 并获得以下输出

| ORDER# | SUBORDER# |             disCOUNTS          |
|------- |-----------| -------------------------------|
|   1    |    1-123  | '[{ discount:"1",amount:"1"}]' |
|   1    |    1-123  | '[{ discount:"2",amount:"2"}]' |

解决方法

我已经更新了我的答案,请在插入语句后添加 ;

  1. 创建表格并插入两行:
create table dbo.test(

    ORDER# varchar(255),SUBORDER# varchar(255),DISCOUNTS varchar(255)
);

insert into dbo.test values ('1','1-123','[{ "discount":"1","amount":"1"}]');
insert into dbo.test values ('1','[{ "discount":"2","amount":"2"}]');

  1. 然后我们就可以使用下面的sql查询数据了。
select ORDER#,SUBORDER#,A.*
from  dbo.test t
CROSS APPLY OPENJSON(t.DISCOUNTS) 
WITH (
    discount varchar(255),amount varchar(255)
) A;

3.结果如下:
enter image description here