【发布时间】:2020-03-30 18:10:03
【问题描述】:
我正在整合一个网络服务。我正在用一个包含数据的调用替换对服务的多个调用。
我已经创建了一个表:
CREATE TABLE InvResults
(
Invoices nvarchar(max),
InvoiceDetails nvarchar(max),
Products nvarchar(max)
);
我用(max)是因为我不知道这个时候json会变得多复杂。
我需要做一些这样的选择(这是伪代码,不是实际的 SQL):
SELECT
(SELECT *
INTO InvResults for Column Invoices
FROM MyInvoiceTable
WHERE SomeColumns = 'someStuffvariable'
FOR JSON PATH, ROOT('invoices')) AS invoices;
SELECT
(SELECT *
INTO InvResults for Column InvoiceDetails
FROM MyInvoiceDetailsTable
WHERE SomeColumns = 'someStuffvariable'
FOR JSON PATH, ROOT('invoicedetails')) AS invoicedetails;
我不知道如何格式化这个,我的谷歌技能在这一点上让我失望。我知道我可能想使用 UPDATE 语句,但我不确定如何结合我的其他要求来执行此操作。我正在探索How do I UPDATE from a SELECT in SQL Server?,但仍处于停顿状态。
最终结果应该是一个表“InvResults”,它有 3 列,其中一行包含来自 Select 语句的结果作为 JSON。列名应与 json 根对象定义相同。
【问题讨论】:
标签: sql json sql-server temp-tables