首页 > 解决方案 > SQL - 需要以选择字段为条件的字段之间的计算

问题描述

我正在使用 SQLite。我有一个表 T 有两个字段 D1 和 D2 都是存储为文本字段的日期。我需要计算给定日期(我们称之为 DF)和 D1 之间的天数,但是当 D2 不为 NULL 时可以使用它。

所以,假设我们只是计算 DF 和 D1 之间的天数,我们将使用:

SELECT CAST((julianday(DF) - julianday(D1)) AS INTEGER)
FROM T

在这里,虽然我需要实现以下伪 SQL:

SELECT CAST((julianday(DF) - julianday(IF D2 IS NOT NULL USE D2 ELSE USE D1)) AS INTEGER)
FROM T

有谁知道如何实现这一目标?

标签: sqlsqlite

解决方案


使用coalesce()

SELECT CAST((julianday(DF) - julianday(coalesce(D2, D1))) AS INTEGER)
FROM T

推荐阅读