表1:采购量
客户端ID | 商品ID |
---|---|
1234 | 1,2 |
5678 | 3,4 |
create table Purchases (ClientId int, ItemId varchar(128));
insert into Purchases (ClientId, ItemId)
values
(1234, '1,2'),
(5678, '3,4');
Declare @newtable table(
clientid NVARCHAR(MAX),
itemid NVARCHAR(MAX),
json NVARCHAR(MAX)
);
insert into @newtable
select [ClientID], [ItemID],'{}'
From Purchases;
Update @newtable
Set Json = JSON_MODIFY (Json, '$.ItemID', [ItemID]);
select * from @newtable;
我尝试使用
Json_modify
,我得到了 { "ItemID": "1,2"}
客户端 ID 1234,但我希望 JSON 输出为 { "ItemID": [ "1", "2" ]}
我期待以下内容
客户端ID | 商品ID | 杰森 |
---|---|---|
1234 | 1,2 | { "ItemID": [ "1", "2" ]} |
5678 | 3,4 | { "ItemID": [ "3", "4" ]} |
您可以通过替换并连接来强制执行此操作。
SELECT
P.*,
CONCAT(
'{ "ItemID": [ "',
REPLACE(STRING_ESCAPE(P.ItemId, 'json'), ',', '", "'),
'" ]}'
) AS Json
FROM Purchases P
结果:
客户端ID | 商品编号 | 杰森 |
---|---|---|
1234 | 1,2 | { "ItemID": [ "1", "2" ]} |
5678 | 3,4 | { "ItemID": [ "3", "4" ]} |
请参阅 this db<>fiddle 进行演示。