如果嵌套查询返回null,则将列设置为某个值

时间:2012-12-18 08:00:30

标签: sql sql-server stored-procedures

我有一个SQL查询

SELECT s.id,
       s.First_Name +' '+s.Last_Name AS Name,
       d1.Department_Name,
       s.Manager_Id,
       s.EmailId
FROM Fin_UserMaster s
INNER JOIN Fin_Department_Master AS d1 ON d1.id = s.Department_Id
WHERE s.id =
    (SELECT Manager_Id
     FROM Fin_UserMaster
     WHERE id= '13')

现在,如果我的嵌套查询返回null,我想给另一个Id代替嵌套查询。

例如,如果嵌套查询返回null,那么s.id = '13'就像那样。

尝试了一些事情,但他们没有成功。

1 个答案:

答案 0 :(得分:4)

(select COALESCE(Manager_Id, 13) from Fin_UserMaster where id= '13')

OR

(select ISNULL(Manager_Id, 13) from Fin_UserMaster where id= '13')

编辑:在大量行中,ISNULL似乎更快。但是,它不是SQL标准的一部分 - 因为ISNULL和COALESCE的一些答案表明了这一点。