在SQL Server 2016中将表转换为JSON每列值

生活

我有下表:

CREATE TABLE #Temp
(
    customerId INT
  , storeCity VARCHAR(50)
  , transactionDate VARCHAR(100)
  , TransactionDescription VARCHAR(200)
  , Amount DECIMAL(18, 2)
)

INSERT INTO #Temp (customerId, storeCity, transactionDate, TransactionDescription, Amount)
VALUES (2, 'Neuwied', 'January 14th, 2018', 'Lorem ipsum dolor', 278),
       (1, 'Sunset Point', 'September 14th, 2018', 'Lorem ipsum dolor sit amet, consectetuer', 159),
       (1, 'Celle', 'March 18th, 2018', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur', 47),
       (3, 'General Lagos', 'March 27th, 2018', 'Lorem', 433), 
       (2, 'Ekeren', 'January 16th, 2018', 'Lorem ipsum dolor sit amet, consectetuer adipiscing', 308),
       (3, 'Montreal', 'November 24th, 2018', 'Lorem', 406),
       (1, 'Hamilton', 'March 17th, 2018', 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur sed', 240)

我需要编写一个查询,customerId在此表中,每个查询都以json字符串结尾

到目前为止,我有

SELECT   
    customerId,
    (SELECT 
         storeCity,
         transactionDate,
         TransactionDescription
     FOR JSON PATH, INCLUDE_NULL_VALUES)
FROM     
    #Temp
ORDER BY 
    1

但我想将所有这些结合起来,所以最终只剩下3行。

对于customerId 2,结果将是

[
  {
    "storeCity": "Neuwied",
    "transactionDate": "January 14th, 2018",
    "TransactionDescription": "Lorem ipsum dolor"
  },
  {
    "storeCity": "Ekeren",
    "transactionDate": "January 16th, 2018",
    "TransactionDescription": "Lorem ipsum dolor sit amet, consectetuer adipiscing"
  }
]

如果可能的话,我希望能够通过storeCity然后transactionDate对json字符串中的行进行排序。

谁能帮我这个?

提前致谢。

米恰尔·图尔钦

试试这个:

select distinct customerId, (
                select StoreCity,
                       TransactionDate,
                       TransactionDescription
                from Temp
                where customerId = T.customerId
                for json path) [JSON]
from Temp T

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将JSON转换为SQL Server 2016中的表

在SQL Server R2中将nvarchar(max)转换为布尔值

如何在SQL Server 2008中将数据转换为json格式?

如何在Sql Server 2008 R2中将列转换为行?

在SQL Server 2017中将行转换为有条件的列

SQL Server将列的XML值解析到表中(针对每一行)

使用SQL Server中的列标题将单行的列值转换为2列

SQL Server将行值转换为列

SQL Server将varchar列值'1218300.00'转换为int

SQL Server如何将列值转换为行

将列值转换为列名称SQL Server

如何将 AT TIME ZONE 返回值转换为 SQL Server 2016 中的实际日期时间值?

将XML转换为SQL Server表

如何使用分区将最小值/最大值转换为 SQL Server 中的列?

SQL Server查询,用于将每个列中的单个值转换为单个列

SQL Server:如何遍历更新触发器中的已删除表并将每一行转换为 JSON

将 SQL Server 列的内容转换为 JSON 格式

将字段中存储的逗号分隔值转换为 SQL Server 中的列

使用 Pivot 将两个表的行转换为 SQL Server 中的列

在SQL Server 2008中将列名称和值转换为行名称和行值

SQL Server将行转换为列

将列转换为行SQL Server

将行转换为列SQL Server

将行数据转换为SQL Server中的列

根据 SQL Server 中的条件将列转换为行

将(文本)行转换为SQL Server 2014中的列

将 INT 列转换为 SQL Server 中的日期时间

将数据列转换为SQL Server中的数据行

将类别转换为SQL Server中的列