在此之前,我從未在 SQL Server 中使用過 JSON,因此需要一些幫助。
我寫了一段簡單的代碼:
DECLARE @json NVARCHAR(4000)
SET @json =
N'{
"id":"40476",
"tags":[
{
"id":"5f5883",
},
{
"id":"5fc8",
}
],
"type":"student",
"external_id":"40614476"
}'
SELECT
JSON_value(@json, '$.tags[0].id') as tags
在上面的示例中,我撰寫了如何從“標簽”中獲取第一個“id”的代碼。
但是,如果在“tags”中不是 2 個“id”,而是一個未知數字,那么這個“id”和結果應該在這樣的列中:
1 5f5883
2 5fc8
uj5u.com熱心網友回復:
您可以使用OPENJSON()顯式模式來決議$.tagsJSON 陣列:
DECLARE @json NVARCHAR(4000)
SET @json =
N'{
"id":"40476",
"tags":[
{
"id":"5f5883"
},
{
"id":"5fc8"
}
],
"type":"student",
"external_id":"40614476"
}'
SELECT id
FROM OPENJSON(@json, '$.tags') WITH (id varchar(10) '$.id')
結果:
id
------
5f5883
5fc8
如果要獲取 JSON 陣列中每個的索引id,$.tags則需要結合OPENJSON()使用默認模式和JSON_VALUE():
SELECT CONVERT(int, [key]) AS rn, JSON_VALUE([value], '$.id') AS id
FROM OPENJSON(@json, '$.tags')
結果:
rn id
----------
0 5f5883
1 5fc8
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/448928.html
下一篇:Centos7 找回root密碼
