如何获取JSON格式的值数组
假设我有一个名为FamousPeople的表,该表有一个列名,有3个名称: 约翰 玛丽 佛莱迪·摩克瑞 这样做:如何获取JSON格式的值数组,json,sql-server,tsql,Json,Sql Server,Tsql,假设我有一个名为FamousPeople的表,该表有一个列名,有3个名称: 约翰 玛丽 佛莱迪·摩克瑞 这样做: SELECT 'Some Random Value' AS someColumnName, (SELECT name FROM FamousPeople FOR JSON PATH) AS famousPeopleName FOR JSON PATH, WITHOUT_ARRAY_WRAPPER 我得到这个结果: { "someColumnName":
SELECT
'Some Random Value' AS someColumnName,
(SELECT name FROM FamousPeople
FOR JSON PATH) AS famousPeopleName
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
我得到这个结果:
{
"someColumnName": "Some Random Value",
"famousPeopleName":
[
{"name":"John"},
{"name":"Mary"},
{"name":"Freddie Mercury"}
]
}
我想知道是否有任何方法可以将著名的UspeopleName结果列作为字符串数组:
{
"someColumnName": "Some Random Value",
"famousPeopleName":
[
"John",
"Mary",
"Freddie Mercury"
]
}
当然,只使用T-SQL功能,不使用T-SQL中的mad scientist字符串操作(在荷兰称为kick)您可以使用JSON_查询和FOR XML构建数组,然后提取整个JSON片段:
declare @FamousPeople table([name] varchar(50))
insert into @FamousPeople values
('John'),('Mary'),('Freddie Mercury')
SELECT 'Some Random Value' AS someColumnName,
JSON_QUERY(
'[' + STUFF(( SELECT ',' + '"' + [name] + '"'
FROM @FamousPeople
FOR XML PATH('')),1,1,'') + ']' ) famousPeopleName
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
结果:
{
someColumnName:一些随机值,
著名人物姓名:
[
厕所,
玛丽,
佛莱迪·摩克瑞
]
}
T-SQL中那些疯狂的科学家字符串操作也是T-SQL的特性