Left Join Where 子句 - 如何在 null 时 return 默认值

Left Join Where Clause - How to return a default value when null

我试图在没有结果 returned 时获取默认值。我使用的示例是我左加入 table 1 到 table 2,其中用户 ID = 1。如您所见,特德在 table 2 中没有照片。

我希望 return 没有在 sql 服务器中 return 没有找到任何照片。

这是我使用的代码,但它不是 return 默认值。

SELECT 
  ISNULL(photoName, 'No Photos Found') as photoName 
FROM usertable
LEFT OUTER JOIN
phototable
ON
usertable.id= phototable.id
WHERE userID = 1

用户Table

Id | User
0  | Jack

照片Table

ID | Photo
0  | me.jpg

我会用 coalesce():

SELECT coalesce(p.photoName, 'No Photos Found') as photoName
FROM usertable u LEFT OUTER JOIN
     phototable p
     ON u.id = p.id
WHERE u.userID = 1

您粘贴的查询中有一点错别字:

as (photoName

应该是:

as photoName

SELECT 
  ISNULL(photoName, 'No Photos Found') as photoName, 
FROM usertable
LEFT OUTER JOIN
phototable
ON
usertable.id= phototable.id
WHERE userID = 1;

除此之外,您的代码看起来还不错,所以您是否拥有真实数据而不是您发布的数据,因为这很可能是 data/schema 问题。

例如,在您的示例数据中,您将列称为 photo 而不是 photoname。