【发布时间】:2011-01-13 05:11:25
【问题描述】:
我有一个加入
SELECT * FROM Y
INNER JOIN X ON ISNULL(X.QID, 0) = ISNULL(y.QID, 0)
Isnull 在这样的 Join 中使其变慢。这就像有条件的加入。
有没有办法解决这样的事情?
我有很多记录,其中QID 为空
任何人都有不需要修改数据的解决方法
【问题讨论】:
-
适用于什么数据库(包括版本)?
-
只有 SQL Server 和 Access 有
ISNULL(),所以我假设 SQL Server -
是否可以假设在 X 和 Y 中 QID 可以是任何值,包括 NULL 和 0,但 NULL 和 0 被视为相等?
-
你的意思是在
AND之前有X.QID = Y.QID吗? -
QID 列是否在两个表中都包含大量空值?如果是这样,您将有效地在空列上获得交叉连接,这似乎是一个有趣的结果。
标签: sql sql-server join null