【发布时间】:2021-11-23 23:56:03
【问题描述】:
如何从employment_types(type,salary)和skills(name,level)数组中检索值并在列中显示它们?我试过employment_types,更不用说skills了:
declare @json nvarchar(max)
set @json = '[
{
"title": "IT Admin",
"experience_level": "mid",
"employment_types": [
{
"type": "permanent",
"salary": null
}
],
"skills": [
{
"name": "Security",
"level": 3
},
{
"name": "WIFI",
"level": 3
},
{
"name": "switching",
"level": 3
}
]
},
{
"title": "Lead QA Engineer",
"experience_level": "mid",
"employment_types": [
{
"type": "permanent",
"salary": {
"from": 7000,
"to": 13000,
"currency": "pln"
}
}
],
"skills": [
{
"name": "Embedded C",
"level": 4
},
{
"name": "Quality Assurance",
"level": 4
},
{
"name": "C++",
"level": 4
}
]
}
]';
SELECT *
FROM OPENJSON(@JSON, '$.employment_types')
WITH
(
type nvarchar(50) '$.type',
salary varchar(max) '$.salary'
)
有将近 7000 条记录,我想从所有这些列中显示上述列。
【问题讨论】:
-
鉴于可能有多个
employment_types和多个skills,您对此样本的预期结果是什么?
标签: json sql-server tsql parsing open-json