sql - 从关系数据库表构建自定义 JSON
问题描述
我有一张桌子,桌子有几列。我想从这些数据中构建一个 JSON。这是表结构。
JSON_KEY COLUMNNAME
Acreage12 accreage
Farmer_projected sellingprice
Projected_Expense attr1
Pattern1 crop
预期的 JSON:-
{
"Agriculture_Expenses": [
{
"Acreage12": "4.0",
"Farmer_projected": "40000.00",
"Projected_Expense": "76230.00",
"Pattern1": "Khariff"
},
{
"Acreage12": "4.0",
"Farmer_projected": "40000.00",
"Projected_Expense": "50820.00",
"Pattern1": "Rabi"
},
{
"Acreage12": "4.0",
"Farmer_projected": "40000.00",
"Projected_Expense": "63000.00",
"Pattern1": "Zaid"
}
]
}
解决方案
如果您使用的是 12c 或更高版本,请使用JSON_OBJECT
operator。例如:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> with emp (empno, ename, job, sal) as
2 (select 1, 'Little', 'Salesman', 1250 from dual union all
3 select 2, 'Foot' , 'Clerk' , 980 from dual union all
4 select 3, 'Scott' , 'Manager' , 1580 from dual
5 )
6 select json_object ('id' value empno,
7 'name' value ename,
8 'position' value job,
9 'salary' value sal
10 ) json
11 from emp;
JSON
--------------------------------------------------------------------------------
{"id":1,"name":"Little","position":"Salesman","salary":1250}
{"id":2,"name":"Foot","position":"Clerk","salary":980}
{"id":3,"name":"Scott","position":"Manager","salary":1580}
SQL>
如果您使用的是较低的数据库版本,则必须手动进行。
推荐阅读
- google-apps-script - 计算单词匹配
- android - 如何以编程方式取消选中 Kotlin 中的复选框
- c - C中char**数组的内存分配
- python - 使用 Python 的 Valgrind。在 callgrind 输出中定位函数
- qt - Yocto QT5 在构建配置和自定义层的配置中复制层
- flutter - 响应式 GridView 全屏颤动
- mongodb - 使用 Spring Data 插入 MongoDB 插入两个集合
- python - BeautifulSoup 在应该拉更多的时候只拉 1 条线
- reactjs - 如何使用 react-virtualized 消除数据表边缘的闪烁?
- php - 未设置用户名中的 PHP cookie