Zapytanie SQL Server - zwróć wartość null, jeśli nie pasuje
Mam problem, którego z jakiegoś powodu nie mogę zrozumieć. Próbuję napisać zapytanie, które łączy dwie tabele, w których nie można znaleźć dopasowania w tabeli. Jak na przykład:
SELECT
Table1.IDField, Table2.IDField
FROM
Table1
LEFT OUTER JOIN
Table2 ON Table1.PersonID = Table2.PersonID
WHERE
(Table1.IDField = '12345')
AND (Table2.Category = 'Foo')
Jeśli nie ma meczuTable2
, nic nie zwraca. Jednak potrzebuję go, aby po prostu zwrócił NULL dla tej kolumny, jeśli nie ma dopasowania i nadal zwraca wartość zTable1
.
ZmieniłemJOIN
ze wszystkim, o czym mogę myśleć, ale bezskutecznie.
Table2.Category
może zawierać wiele innych wartości, więc robiOR IS NULL
rodzaj transakcji nie zadziała.
Tak więc, jeśli nie ma meczuTable2.Category = 'Foo'
, Nadal potrzebuję, aby wrócić:
Table1 | Table2
----------------
12345 | NULL
Jakieś sugestie?