我有這個 JSON 陣列,它存盤在名為[json]. 該表只有這一列。
CREATE TABLE MyTable (
[json] nvarchar(200)
);
INSERT INTO MyTable
VALUES('[{"Id":1},{"Id":2},{"Id":3}]');
db<>在這里擺弄
我需要的輸出:使用 SELECT 陳述句在同一列下的單獨行中的每個 Id:
Id (column name)
----------------
1
2
3
我嘗試了什么:
SELECT JSON_VALUE([json], '$.Id') as Id
FROM table
但結果是空的:
Id
--------
null
uj5u.com熱心網友回復:
使用帶有 WITH 的 OpenJson 來識別您要檢索的物件非常簡單
declare @json NVarChar(2048) = N'[{"Id":1},{"Id":2},{"Id":3}]';
SELECT * FROM OpenJson(@json)
WITH (ID INT '$.Id');
uj5u.com熱心網友回復:
您可以像這樣將 OPENJSON 與 JSON_VALUE 一起使用:
CREATE TABLE MyTable (
[json] nvarchar(200)
);
INSERT INTO MyTable VALUES ('[{"Id":1},{"Id":2},{"Id":3}]'), ('[{"Id":1},{"Id":2},{"Id":3}]')
SELECT JSON_VALUE(a.[Value], '$.Id') Id
FROM MyTable f
CROSS APPLY OPENJSON (f.[json]) a
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/449522.html
上一篇:SQL位元組轉換函式
