我正在使用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 server中序列化JSON数组有点麻烦,需要在STRING_AGG()输出上使用JSON_QUERY(),例如:
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;