SQL 来自不同列的 datediff
SQL datediff from different columns
我有一个 table 在一个字段或另一个字段(取决于另一个变量)中有一个行动日期(让我们称之为 X),问题是我需要获取日期'X' 发生了,所以我需要一个新列,其值为 column1 或 column2,具体取决于日期所在的位置。
我对此非常陌生,所以我一直在尝试不同的东西,现在尝试使用 CASE。
我得到了以下信息,但是我在新列“DATE_X_FINAL”中得到的所有值都是 NULL。
虽然我需要一个新专栏,但我现在正在尝试 select 看看我是否可以让它工作。
有什么想法吗?
SELECT [Date_X], [Date_X2],
CASE
WHEN [Date_X] = NULL THEN [Date_X2]
END as DATE_X_FINAL
FROM [DATABASE.TABLE]
结果:
[Date_X] [Date_X2] DATE_X_FINAL
2020-12-23 NULL NULL
2019-02-05 NULL NULL
2019-02-13 NULL NULL
2019-02-12 NULL NULL
2019-02-06 NULL NULL
In SQL null is not equal (=) to anything—not even to another null.
您使用 IS NULL 测试空值比较。
在标准 (ANSI) SQL - COALESCE 中有一个内置的便利函数可以执行此操作。 (“COALESCE() 函数 returns 列表中的第一个非空值。”)
SELECT Date_X, Date_X2
, COALESCE(Date_X, Date_X2) AS 'DATE_X_FINAL'
FROM DATABASE.TABLE
我有一个 table 在一个字段或另一个字段(取决于另一个变量)中有一个行动日期(让我们称之为 X),问题是我需要获取日期'X' 发生了,所以我需要一个新列,其值为 column1 或 column2,具体取决于日期所在的位置。
我对此非常陌生,所以我一直在尝试不同的东西,现在尝试使用 CASE。
我得到了以下信息,但是我在新列“DATE_X_FINAL”中得到的所有值都是 NULL。
虽然我需要一个新专栏,但我现在正在尝试 select 看看我是否可以让它工作。
有什么想法吗?
SELECT [Date_X], [Date_X2],
CASE
WHEN [Date_X] = NULL THEN [Date_X2]
END as DATE_X_FINAL
FROM [DATABASE.TABLE]
结果:
[Date_X] [Date_X2] DATE_X_FINAL
2020-12-23 NULL NULL
2019-02-05 NULL NULL
2019-02-13 NULL NULL
2019-02-12 NULL NULL
2019-02-06 NULL NULL
In SQL null is not equal (=) to anything—not even to another null.
您使用 IS NULL 测试空值比较。
在标准 (ANSI) SQL - COALESCE 中有一个内置的便利函数可以执行此操作。 (“COALESCE() 函数 returns 列表中的第一个非空值。”)
SELECT Date_X, Date_X2
, COALESCE(Date_X, Date_X2) AS 'DATE_X_FINAL'
FROM DATABASE.TABLE