【问题标题】:Null condition in derived column to switch to createdDate if UpdatedDate is NULL如果 UpdatedDate 为 NULL,则派生列中的 Null 条件切换到 createdDate
【发布时间】:2020-06-02 07:05:14
【问题描述】:

我有一个员工表,其中包含:

  • createdDate:员工的创建日期
  • updatedDate:如果员工有修改,则更新日期

这是一个例子:

EmployeeId createdDate updatedDate
54         2013-07-10  NULL
245        2016-06-29  2016-07-03

如果 updatedDate 为 NULL,我们将只考虑 createdDate。我正在使用派生列,如何使用条件?

我的查询如下:

SELECT IIF(ISNULL(updatedDate),createdDate , updatedDate)
FROM employee

【问题讨论】:

    标签: sql sql-server tsql date ssis


    【解决方案1】:

    ISNULL() 是合适的:

    SELECT ISNULL(updatedDate, createdDate)
    FROM employee e;
    

    ISNULL() 接受两个参数,一个是可能的null 值,另一个是替换null 值。

    【讨论】:

      【解决方案2】:

      在您的派生列中,条件必须如下所示:

      ISNULL(UpdatedDate)  ? CreatedDate :  UpdatedDate
      

      【讨论】:

        【解决方案3】:

        我只会使用coalesce()。它完全符合您的要求,并且它是标准 SQL(不像 ISNULL(),它在某种程度上是特定于供应商的):

        select coalesce(updatedDate, createdDate) from employee
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-04-04
          • 1970-01-01
          • 1970-01-01
          • 2018-04-13
          • 2021-03-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多