DECLARE @json NVARCHAR(4000) = N'{
"pets" : {
"cats" : [
{ "id" : 1, "name" : "Fluffy", "sex" : "Female" },
{ "id" : 2, "name" : "Long Tail", "sex" : "Female" },
{ "id" : 3, "name" : "Scratch", "sex" : "Male" }
]
}
}'
SELECT * FROM OPENJSON(@json, '$.pets.cats') WITH --we have the "main" json address here
(
id INT '$.id', --sub-address
name varchar(10) '$.name', --sub-address
sex varchar(10) '$.sex' --sub-address
)
結果是:
| ID | 姓名 | 性別 |
|---|---|---|
| 1 | 蓬松的 | 女性 |
| 2 | 長尾巴 | 女性 |
| 3 | 刮 | 男性 |
我想包含另一個不依賴于 JSON 的列,但它是一個自定義指定的字串(“mammal”),所以輸出是這樣的:
| ID | 姓名 | 性別 | 型別 |
|---|---|---|---|
| 1 | 蓬松的 | 女性 | 哺乳動物 |
| 2 | 長尾巴 | 女性 | 哺乳動物 |
| 3 | 刮 | 男性 | 哺乳動物 |
我將如何實作這一目標?
uj5u.com熱心網友回復:
您可以簡單地在陳述句中添加一個常量:SELECT
DECLARE @json NVARCHAR(4000) = N'{
"pets" : {
"cats" : [
{ "id" : 1, "name" : "Fluffy", "sex" : "Female" },
{ "id" : 2, "name" : "Long Tail", "sex" : "Female" },
{ "id" : 3, "name" : "Scratch", "sex" : "Male" }
]
}
}'
SELECT *, 'mammal' AS Type FROM OPENJSON(@json, '$.pets.cats') WITH --we have the "main" json address here
(
id INT '$.id', --sub-address
name varchar(10) '$.name', --sub-address
sex varchar(10) '$.sex' --sub-address
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/504582.html
