【发布时间】:2016-08-28 23:19:28
【问题描述】:
我目前有一个复杂的 SQL 查询,它被插入到一个临时表中。该查询包含OUTER APPLY,因为并非所有返回的记录都将应用于结果集。
我还需要使用WHERE 子句中的OUTER APPLY 列来过滤结果,但还需要包含不适用于OUTER APPLY .e 的结果。所有外部应用结果 = 1 和非外部应用结果。
这是查询布局的简单版本:
INSERT INTO #temp (X, Y, Z, O1, O2)
SELECT
X Y Z
FROM T1
INNER JOIN T2, T etc.
OUTER APPLY (
SELECT O1, O2 FROM XYZ…) OATable
WHERE
OATable.O1 = 1 -- I tried just adding “IN (1, NULL)” but this
still excludes the results.
任何帮助将不胜感激。
平台:SQL Server 2012+
谢谢
【问题讨论】:
-
我对实际查询很感兴趣;到目前为止的答案似乎都不错,但我认为我们(潜在的回答者)不能真正根据您非常简化的查询来判断我们是否有用地回答。如果您能够发布完整的查询,请您这样做吗?它可能有助于获得更完美的答案。
-
一些示例数据或许也会有所帮助。
标签: sql sql-server database tsql sql-server-2012