TSQL:如果行不存在,则返回值“NONE”

时间:2015-11-04 18:11:27

标签: sql sql-server

过去几周我一直在使用Microsoft Server Management Studio,而且大部分时间我已经能够解决所有问题,但有一个主要方面我遇到了困难。我经常被要求运行查询以查找给定名称列表中的人的特定值。但是,有时我查询的列表中的某些人没有我正在寻找的值,因此根本不返回他们的名字。

例如,当我将50个人的列表放入此查询时:

SELECT p.name, dbsr.reviewCd
FROM Person p, DbSpecialReview dbsr
WHERE p.personId = dbsr.personId 
AND p.name IN (...);

我可能只获得40的值。

我需要知道如何运行查询,即使只有40/50的人拥有与之关联的值,查询也会返回一个包含所有名称的表,如果一个人没有值它用'None'或'Null'填充相关列。

1 个答案:

答案 0 :(得分:0)

SELECT p.name, ISNULL(dbsr.reviewCd , 'None') AS reviewCd
FROM Person p
LEFT JOIN DbSpecialReview dbsr ON p.personId = dbsr.personId 
                              AND p.name IN (...);