我正在尝试学习如何格式化sql查询的结果,以便将输出设置为json。我真的很感激如果有人能指导,因为我将产生不同类型的图表我的结果。
例如,一个图表需要具有以下json结构:
{
xAxis: {
type: 'product',
data: ['Côte de Blaye', 'Thüringer Rostbratwurst', 'Mishi Kobe Niku', 'Sir Rodney's Marmalade', '"Carnarvon Tigers', 'Raclette Courdavault', 'Manjimup Dried Apples']
},
yAxis: {
type: 'value'
},
series: [{
data: [263, 123.7, 97, 934, 1290, 1330, 1320],
type: 'line'
}]
};
我正在使用northwind存储过程
SET ROWCOUNT 10
SELECT Products.ProductName AS TenMostExpensiveProducts, Products.UnitPrice
FROM Products
ORDER BY Products.UnitPrice DESC FOR JSON PATH
以上是我的结果
[
{"TenMostExpensiveProducts":"Côte de Blaye","UnitPrice":263.5000},
{"TenMostExpensiveProducts":"Thüringer Rostbratwurst","UnitPrice":123.7900},
{"TenMostExpensiveProducts":"Mishi Kobe Niku","UnitPrice":97.0000},
{"TenMostExpensiveProducts":"Sir Rodney's Marmalade","UnitPrice":81.0000},
{"TenMostExpensiveProducts":"Carnarvon Tigers","UnitPrice":62.5000},
{"TenMostExpensiveProducts":"Raclette Courdavault","UnitPrice":55.0000},
{"TenMostExpensiveProducts":"Manjimup Dried Apples","UnitPrice":53.0000},
{"TenMostExpensiveProducts":"Tarte au sucre","UnitPrice":49.3000},
{"TenMostExpensiveProducts":"Ipoh Coffee","UnitPrice":46.0000},
{"TenMostExpensiveProducts":"Rössle Sauerkraut","UnitPrice":45.6000}
]
我想把x轴画成产品,y轴单位价格画成上面解释的结构。如果有人能指导我如何用sql设计自己的结构,我将不胜感激。
1条答案
按热度按时间pieyvz9o1#
在sql server中,用json生成对象数组相当简单,例如:adventureworks数据库中最昂贵的前10个产品。。。
生成原始数组有点困难,并且依赖于组合之类的技巧
json_query()
与stuff()
以及for xml
.stuff()
以及for xml
通常用于构建分隔的数据列表,例如逗号分隔的数字列表。然后我们可以使用json_query()
用于返回的原始值for json
,例如:要获得所需的结构,请使用
for json path
以及without_array_wrapper
移除周围的[]
字符。。。请注意
series
作为对象数组生成,这是将其嵌入自己的cte的结果。