我在表“jsontable”中的 sql 列“jsoncol”之一中的 json 格式如下所示。請幫助我使用JSON_QUERY或JSON_VALUE獲取這些資料
請注意鍵值對中的括號和雙引號...
{
"Company": [
{
"Info": {
"Address": "123"
},
"Name": "ABC",
"Id": 999
},
{
"Info": {
"Address": "456"
},
"Name": "XYZ",
"Id": 888
}
]
}
我正在嘗試使用 sql 查詢檢索所有公司名稱。提前致謝
uj5u.com熱心網友回復:
您可以使用:
SELECT j.name
FROM table_name t
CROSS APPLY JSON_TABLE(
t.value,
'$.Company[*]'
COLUMNS(
name VARCHAR2(200) PATH '$.Name'
)
) j
其中,對于樣本資料:
CREATE TABLE table_name (
value CLOB CHECK (value IS JSON)
);
INSERT INTO table_name (value)
VALUES ('{
"Company": [
{
"Info": {
"Address": "123"
},
"Name": "ABC",
"Id": 999
},
{
"Info": {
"Address": "456"
},
"Name": "XYZ",
"Id": 888
}
]
}');
輸出:
姓名 美國廣播公司 XYZ
db<>在這里擺弄
uj5u.com熱心網友回復:
在這種情況下,您可以輕松地使用JSON_TABLE()函式,而前提是資料庫版本至少12.1.0.2為
SELECT name
FROM jsontable,
JSON_TABLE(jsoncol,
'$' COLUMNS(NESTED PATH '$."Company"[*]'
COLUMNS(name VARCHAR2 PATH '$."Name"')))
Demo
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/497746.html
