SQL查询 - 链接到查找,其中查找字段可能为NULL

时间:2014-03-28 16:42:02

标签: sql

我有一个表THERAPY,它包含链接到查找表REF_CODE中的文本引用值的数字字段。我想构建一个查询,该查询从THERAPY返回一组记录以及来自REF_CODE的相关文本值。

我要查询的字段是THERAPY.PROT。 PROT可以为null。我想恢复由外键(EVENT_ID)标识的所有记录以及与PROT对应的REF_CODE中的值。 ( REF_CODE包含许多由CAT_ID标识的查找类别 - 这是CAT_ID = 1子句用于的内容。)

SELECT THER_ID, CODE_NAME FROM THERAPY t, REF_CODE r
WHERE (t.PROT = r.CODE or t.PROT is null)
AND EVENT_ID = 1234
AND r.CAT_ID = '1';

这个问题是如果THERAPY.PROT = null,则此查询根本不会带回记录,因为PROF = null的REF_CODE中没有值。我需要一个查询,从EVER_ID = 1234的THERAPY返回所有记录,无论PROT是否为空。到REF_CODE的链接正在查询我的查询并排除PROT = null的记录。但我仍然需要我的集合中的记录。

那么,我如何构造一个查询,它从THER返回所有记录,其中EVENT_ID = 1234 AND 来自REF_CODE的PROT对应文本值,无论PROT是否具有值或为null 。这甚至可能吗?

非常感谢您提前寻找!很高兴回答任何问题。

1 个答案:

答案 0 :(得分:0)

SELECT THER_ID
    ,ISNULL(CODE_NAME,'No Code Found') [CodeName]
FROM THERAPY t
LEFT JOIN REF_CODE r
    ON t.PROT = r.CODE
WHERE EVENT_ID = 1234
    AND r.CAT_ID = '1';