【问题标题】:Select statement with result even if there isn't in the db即使数据库中没有结果,也可以选择带有结果的语句
【发布时间】:2013-07-08 18:58:11
【问题描述】:

我有这张表,其中包含特定客户订单的所有附件,我只想选择一种附件,但即使没有附件,我也想查看该行。有办法吗?

我试过了,但它不起作用:

SELECT 
  Comm.No_Com, 
    CASE WHEN Attachement.EntityID IS NULL OR Attachement.ATS_CategoryOfAttachmentCode='DESSIN'
        THEN Attachement.FileName
        ELSE ' '
    END AS Dessin

    FROM Comm
    INNER JOIN Attachement
    ON Comm.COH_Id=Attachement.EntityID

【问题讨论】:

  • 这就是INNER JOIN和LEFT OUTER JOIN的区别。

标签: sql select case


【解决方案1】:

使用 LEFT OUTER JOIN 而不是 INNER JOIN。

SELECT 
    Comm.No_Com, 
    CASE WHEN Attachement.EntityID IS NULL OR Attachement.ATS_CategoryOfAttachmentCode='DESSIN'
        THEN Attachement.FileName
        ELSE ' '
    END AS Dessin
FROM Comm
LEFT OUTER JOIN Attachement
ON Comm.COH_Id=Attachement.EntityID AND Attachment.Kind = 'DesiredKind'

【讨论】:

  • 我仍然有一个问题,如果我有 10 个我不想看到的附件(其他类型的附件),它会给我 10 行。对不起,如果我不够清楚。
  • 非常感谢!完美运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-27
  • 2021-12-31
  • 2012-09-09
  • 1970-01-01
  • 2014-03-15
  • 2022-06-14
相关资源
最近更新 更多