【问题标题】:SQL Case Statement or Sub-Query [closed]SQL Case 语句或子查询 [关闭]
【发布时间】:2022-01-23 20:58:20
【问题描述】:

在我们有一个查询的应用程序中,我们遇到了一种情况,即我们要带回打开、关闭和存档的记录,并带有与之关联的日期。这是一个与主表关联并连接的表。该表可能有 1 到 3 条记录与主表的同一 ID 相关联,具体取决于记录是否已打开、关闭和/或存档。三个阶段基本上是打开、关闭和归档。

我们要做的是:当 EStatusID = 1(这意味着打开)时,我们需要 DateClosed 读取为空白(因为它尚未关闭或存档)

SELECT
E.EID,
EStatus.EStatusID,
FORMAT (EStatus.DateCreated, 'MM/dd/yyyy') as DateClosed

我不会对其余的查询感到厌烦,因为它很长而且对这个问题没有用处。所以我们需要某种 Case 语句或子查询或 Select 中的某些东西来完成这项任务。

【问题讨论】:

  • 这是哪种数据库? (SQL 根据系统有不同的风格)

标签: sql join


【解决方案1】:

您可以使用case 表达式:

CASE WHEN EStatus.EStatusID <> 1 THEN FORMAT (EStatus.DateCreated, 'MM/dd/yyyy') END
    AS DateClosed,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    相关资源
    最近更新 更多