我在生产环境中遇到了类似的问题,但我设法在Northwind DB上重现了这种行为。
考虑以下查询:
USE NORTHWND;
DECLARE @ids TABLE ( Id NCHAR(50) );
INSERT INTO @ids
VALUES ( N'AROUT' ),
( N'ALFKI' );
SELECT *
FROM ( SELECT c.CustomerID
FROM dbo.Customers c
WHERE c.CustomerID IN ( SELECT Id
FROM @ids )
UNION ALL
SELECT '0'
) t1
JOIN ( SELECT o.CustomerID
FROM dbo.Orders o
--LEFT JOIN dbo.[Order Details] od ON o.OrderID = od.OrderID
UNION ALL
SELECT '0'
) t2 ON t2.CustomerID = t1.CustomerID
OPTION ( RECOMPILE );
Run Code Online (Sandbox Code Playgroud)
现在,当我取消注释 …