Sql server 带有列表项的json sql

Sql server 带有列表项的json sql,sql-server,json,Sql Server,Json,我将json存储在sql2016中。当我运行查询时,json的部分返回值,而其他部分不返回值。 下面是存储在表dbo.Trades中的json 数据类型如下所示 CREATE TABLE [dbo].[Trades]( [_id] [int] IDENTITY(1,1) NOT NULL, [trade] [nvarchar](max) NULL, 我的json格式如下,并存储在trade列中 { "direction": "Short", &q

我将json存储在sql2016中。当我运行查询时,json的部分返回值,而其他部分不返回值。 下面是存储在表dbo.Trades中的json 数据类型如下所示

CREATE TABLE [dbo].[Trades](
[_id] [int] IDENTITY(1,1) NOT NULL,
[trade] [nvarchar](max) NULL,
我的json格式如下,并存储在trade列中

{
  "direction": "Short",
  "Powerbars": 2,
  "PowerbarsTime": [
    "2016-11-10T20:25:32.481424-05:00",
    "2016-11-10T20:44:01.8993031-05:00"
  ]
}
因为Powerbarstime是json中的一个列表,所以我必须提供索引来打印它。但是我不知道列表中会有多少条目。是否有方法合并json中的列表并返回逗号分隔的列

我必须这样做才能打印

SELECT        _id, 
JSON_VALUE(trade, '$.Powerbars') AS powerbars,
JSON_VALUE(trade, '$.PowerbarsTime[0]') AS PowerbarsTime1,
JSON_VALUE(trade, '$.PowerbarsTime[1]') AS PowerbarsTime2
FROM            dbo.Trades
order by _id desc
我得到了列表上的两个项目,我将它们硬编码到sql中


如何合并
JSON_VALUE(trade,$.PowerbarsTime')
下的所有列表项,以便将其全部视为一个逗号分隔的列。

您问题中的答案有帮助吗?可能是插入PowerbarsTime的datetime值的格式需要不同,以便能够根据数据类型等插入到该列中。?换句话说,用dbo.Trades中的
格式(CAST(JSON_值(trade,$.PowerbarsTime')作为datetimeoffset)、'yyyy-MM-dd hh:MM:ss')作为entrytime进行尝试,并查看得到的结果。否则,您可能会告诉我们该表列的数据类型是如何设置的。我重新定义了prob,因为json有一个列表,我需要找到一种方法将该列表转换为逗号分隔的列(如果适用),您可以查看是否可以根据需要构建一个查询以从json数据中提取列表。您也可以进行研究,因为这可能是我使用SQL Server对OpenXML路径所做的类似工作的最佳方法。我只是想给你们一些好的起点,因为我现在不能用你们的样本数据进行测试。你们问题的答案有帮助吗?可能是插入PowerbarsTime的datetime值的格式需要不同,以便能够根据数据类型等插入到该列中。?换句话说,用dbo.Trades中的
格式(CAST(JSON_值(trade,$.PowerbarsTime')作为datetimeoffset)、'yyyy-MM-dd hh:MM:ss')作为entrytime进行尝试,并查看得到的结果。否则,您可能会告诉我们该表列的数据类型是如何设置的。我重新定义了prob,因为json有一个列表,我需要找到一种方法将该列表转换为逗号分隔的列(如果适用),您可以查看是否可以根据需要构建一个查询以从json数据中提取列表。您也可以进行研究,因为这可能是我使用SQL Server对OpenXML路径所做的类似工作的最佳方法。我只是想给你们一些好的起点,因为我现在不能用你们的样本数据进行测试。