Rico Rico - 6 months ago 10
SQL Question

SQL Inner Join On Null Values

I have a Join

SELECT * FROM Y
INNER JOIN X ON ISNULL(X.QID, 0) = ISNULL(y.QID, 0)


Isnull
in a Join like this makes it slow. It's like having a conditional Join.
Is there any work around to something like this?
I have a lot of records where
QID
is Null

Anyone have a work around that doesn't entail modifying the data

Answer

You have two options

INNER JOIN x ON x.qid = y.qid OR (x.qid IS NULL AND y.qid IS NULL)

or easier

INNER JOIN x ON x.qid IS NOT DISTINCT FROM y.qid

Comments