alw*_*NET 4 sql sql-server sql-server-2016
我有一个表,其中的'Preference'列存储 JSON 字符串。
a)我想type从rowscompanytype中获取。在我对sqlfiddle的尝试中,我得到了五行,但其中没有数据。
SELECT z.[Type]
FROM FinPreferences p
CROSS APPLY OPENJSON(Preference,'$.companytype.type') WITH (
[Type] INT
) z
WHERE PreferenceID=1
Run Code Online (Sandbox Code Playgroud)
b)如何获得一行字符串的结果,即
1,2,3,4,5
Preference这是列内的数据
{
"companysize":{"min":0,"max":5},
"distance":{"min":100,"max":200},
"companytype":{"type":[1,2,3,4,5]},
"budget":{"min":1000,"max":2000}
}
Run Code Online (Sandbox Code Playgroud)
删除该WITH子句并使用该value字段来检索数组的值,例如:
SELECT z.value as Type
FROM FinPreferences p
CROSS APPLY OPENJSON(Preference,'$.companytype.type') z
WHERE PreferenceID=1
Run Code Online (Sandbox Code Playgroud)
$或者就像子句中的路径一样使用WITH:
SELECT z.Type
FROM FinPreferences p
CROSS APPLY OPENJSON(Preference,'$.companytype.type')
WITH ( Type int '$') z
WHERE PreferenceID=1
Run Code Online (Sandbox Code Playgroud)
WITH适用于OPENJSON返回的结果。路径$.companytype.type只是一个整数数组,它没有任何其他属性
| 归档时间: |
|
| 查看次数: |
3994 次 |
| 最近记录: |