MS SQL - 尝试使用 FOR JSON 输出每个值的方括号
MS SQL - Trying to use FOR JSON to output with square brackets for each value
我正在使用 MSSQL 尝试以特定格式获取 JSON 输出,并用方括号括住各个值。这是查询的一部分:
SELECT DISTINCT
(SELECT Email_Address AS fieldValues
FROM table1
FOR JSON PATH) records
FROM table1
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
这是结果:
{
"records": [
{
"fieldValues": "test@email.com"
}
]
}
我需要在电子邮件地址周围加上方括号,这样它看起来像这样:
{
"records": [
{
"fieldValues": [
"test@email.com"
]
}
]
}
有什么办法吗?
在 SQL 服务器中序列化 JSON 数组有点麻烦,需要使用 JSON_QUERY() over STRING_AGG() 输出之类的东西,例如:
select
(
select
json_query('['+(
select string_agg(quotename(Email_Address, '"'), ',')
from table1
)+']', '$') as [fieldValues]
for json path
) as [records]
for json path, without_array_wrapper;
我正在使用 MSSQL 尝试以特定格式获取 JSON 输出,并用方括号括住各个值。这是查询的一部分:
SELECT DISTINCT
(SELECT Email_Address AS fieldValues
FROM table1
FOR JSON PATH) records
FROM table1
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
这是结果:
{
"records": [
{
"fieldValues": "test@email.com"
}
]
}
我需要在电子邮件地址周围加上方括号,这样它看起来像这样:
{
"records": [
{
"fieldValues": [
"test@email.com"
]
}
]
}
有什么办法吗?
在 SQL 服务器中序列化 JSON 数组有点麻烦,需要使用 JSON_QUERY() over STRING_AGG() 输出之类的东西,例如:
select
(
select
json_query('['+(
select string_agg(quotename(Email_Address, '"'), ',')
from table1
)+']', '$') as [fieldValues]
for json path
) as [records]
for json path, without_array_wrapper;