下面是一个简单的例子,它返回奇怪的结果,这是不可预测的,我们无法在我们的团队中解释。我们做错了什么还是 SQL Server 错误?
经过一番调查,我们将搜索区域缩小到子查询中的 union 子句,从“men”表中选择一条记录
它在 SQL Server 2000 中按预期工作(返回 12 行),但在 2008 和 2012 年它只返回一行。
create table dual (dummy int)
insert into dual values (0)
create table men (
man_id int,
wife_id int )
-- there are 12 men, 6 married
insert into men values (1, 1)
insert into men values (2, 2)
insert into men values (3, null)
insert into men values (4, null)
insert into men values (5, null)
insert into men values …Run Code Online (Sandbox Code Playgroud)