小编Phi*_*0ne的帖子

Microsoft SQL Server 2014 从交叉应用中的查询嵌套

在 OUTER APPLY 语句中从嵌套查询中进行选择时,嵌套查询似乎在某些情况下只评估一次。

向 Azure 反馈论坛报告的错误:https : //feedback.azure.com/forums/908035-sql-server/suggestions/39428632-microsoft-sql-server-2014-incorrect-result-when-s

这是预期的行为还是我在文档中遗漏了什么,或者这是 SQL Server 中的错误?

另外,是否有可能强制对每一行的嵌套查询进行评估?

测试案例 1

评估 VALUES 中每一行的嵌套 FROM 查询(恕我直言,预期行为)

SELECT
    v,
    v2
FROM
    (VALUES (1), (2), (3), (4)) AS inner_query(v)
    OUTER APPLY (
        SELECT
            MAX(inner_v2) AS v2
        FROM (
            SELECT 
                15 AS id,
                v AS inner_v2
        ) AS outer_query
        GROUP BY id
    ) AS outer_apply
Run Code Online (Sandbox Code Playgroud)

结果:

| v | v2|
|---|---|
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| …
Run Code Online (Sandbox Code Playgroud)

sql-server union cross-apply

10
推荐指数
2
解决办法
350
查看次数

标签 统计

cross-apply ×1

sql-server ×1

union ×1