gpt4 book ai didi

SQL Select 如果为空则返回默认值

转载 作者:行者123 更新时间:2023-12-01 19:48:14 33 4
gpt4 key购买 nike

数据库:MS SQL 2008

SELECT Listing.Title, Listing.MLS, Pictures.PictureTH, Pictures.Picture, Listing.ID 
FROM Listing INNER JOIN Pictures ON Listing.ID = Pictures.ListingID
WHERE (Pictures.ID = (SELECT MIN(ID) FROM Pictures WHERE (ListingID = Listing.ID)))

问题是,我有几个没有图片的“列表”,并且由于这个 SQL 脚本,它们没有显示。我怎样才能让他们出现?

如果该值为空,是否可以为 Pictures.Picture 列指定“default.jpg”值?我对此很迷茫,所以如果有人能提供帮助,那就太好了。抱歉,如果我问的问题也很糟糕,我不明白如何真正问我需要它做什么。但请询问更多详细信息,我会将其发布。

每个列表可以包含用户想要的任意数量的图片,我需要这个脚本来显示列表,即使它没有图片。

<小时/>

第二阶段

<小时/>

谢谢大家。到目前为止,我正在学习一些我什至不知道存在的新命令。现在的问题是它为列表中的每张图片返回一行。但默认图像效果很好。

SELECT Listing.Title, Listing.MLS, coalesce(Pictures.PictureTH, '../default_th.jpg') as PictureTH, coalesce(Pictures.Picture, '../default.jpg') as Picture, Listing.ID FROM Listing LEFT
OUTER JOIN Pictures ON Listing.ID = Pictures.ListingID

如何获取它,以便每个 ListingID 仅返回 1 行?

最佳答案

有两件事:

  1. 使用左外连接而不是内连接来获取所有列表,即使缺少图片。
  2. 使用coalesce应用默认值

    SELECT Listing.Title
    , Listing.MLS
    , Pictures.PictureTH
    , coalesce(Pictures.Picture, 'default.jpg') as Picture
    , Listing.ID
    FROM Listing
    LEFT OUTER JOIN Pictures
    ON Listing.ID = Pictures.ListingID

编辑要限制为一行:

SELECT Listing.Title
, Listing.MLS
, Pictures.PictureTH
, coalesce(Pictures.Picture, 'default.jpg') as Picture
, Listing.ID
FROM Listing
LEFT OUTER JOIN Pictures
ON Listing.ID = Pictures.ListingID
WHERE Pictures.ID is null
OR Pictures.ID = (SELECT MIN(ID)
FROM Pictures
WHERE (ListingID = Listing.ID)))

关于SQL Select 如果为空则返回默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3886340/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com