没有为“sp”的第 1 列指定列名

Ada*_*zek 4 sql-server

我有以下查询:

SELECT s."Description",
sp.*
FROM "Supplier" as s
OUTER APPLY (
    SELECT p."Id", p."Description", p."Price"
    FROM "Products" as p
    WHERE p."SupplierId" = s."Id"
    FOR JSON auto 
) as sp
Run Code Online (Sandbox Code Playgroud)

我正在尝试根据OUTER APPLY结果构建 json 数组,但我卡在这里是因为有一个错误,No column name was specified for column 1 of 'sp'.我在 stackoverflow 上发现了类似的问题,但没有外部应用的示例。

你能解释一下这个查询有什么问题吗?

Zho*_*rov 6

您只需要添加一个列别名:

SELECT 
    s."Description",
    sp.*
FROM "Supplier" as s
OUTER APPLY (
    SELECT p."Id", p."Description", p."Price"
    FROM "Products" as p
    WHERE p."SupplierId" = s."Id"
    FOR JSON auto 
) as sp(json)
Run Code Online (Sandbox Code Playgroud)