左连接 - 无限循环(永不返回)

时间:2013-05-06 12:11:49

标签: sql-server-2008 left-join isnull

我有一个表和一个具有以下行数的复杂视图

表cpi - 行数= 74559 查看most_recent - 行数= 69832

然后我尝试进行以下查询

SELECT DISTINCT TOP 201 cpi.cbuno,  cpi.casebook, v.status_uno
 FROM CPI cpi 
 inner JOIN most_recent v ON v.cbuno=cpi.cbuno
 where isnull(v.status_uno, -1) = 669

我很快就得到了结果。然后我用左连接尝试了如下

SELECT DISTINCT TOP 201 cpi.cbuno,  cpi.casebook, v.status_uno
 FROM CPI cpi 
 left JOIN most_recent v ON v.cbuno=cpi.cbuno
 where isnull(v.status_uno, -1) = 669

然后它经历一个无限循环......只返回一个值。还有一件事要提一下,如果我在where子句中使用v.status_uno = 669而不是(v.status_uno,-1)= 669,它会经历相同的无限循环。你们对此有什么想法吗?

感谢您的帮助

感谢, keth

1 个答案:

答案 0 :(得分:0)

也许......

SELECT DISTINCT TOP 201 cpi.cbuno,  cpi.casebook, v.status_uno
 FROM CPI cpi 
 LEFT JOIN most_recent v 
   ON v.cbuno=cpi.cbuno 
     and v.status_uno=669