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。
我试图在没有结果 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。