我尝试在没有返回结果时获取默认值。我正在使用的示例是将表1连接到表2其中userid = 1.正如您所见,特德在表2中没有照片。
我没有在sql server中返回任何内容,而是希望它返回No Photo Found。
这是我正在使用的代码,但它不会返回默认值。
SELECT
ISNULL(photoName, 'No Photos Found') as photoName
FROM usertable
LEFT OUTER JOIN
phototable
ON
usertable.id= phototable.id
WHERE userID = 1
用户表
Id | User
0 | Jack
照片表
ID | Photo
0 | me.jpg
答案 0 :(得分:1)
我会使用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
答案 1 :(得分: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;
除了您的代码看起来不错外,您是否拥有真实数据而不是发布的数据,因为它很可能是数据/架构问题。
在您的示例数据中,您可以调用列照片而不是光子照片。