sql - 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
有谁知道如何实现这一目标?
解决方案
使用coalesce()
:
SELECT CAST((julianday(DF) - julianday(coalesce(D2, D1))) AS INTEGER)
FROM T
推荐阅读
- html - 将不同域的 iframe 添加到 Wordpress,无需滚动和 100% 高度
- spring-boot - 无法访问 Kubernetes 服务
- javascript - 如何在 React 应用程序中包含纯 JavaScript?
- tensorflow - 在 Windows 10 上使用 bazel 0.29.1 构建 TensorFlow 2 失败
- c# - 如何在字符串插值C#中保留空值
- c - 显示从 4 位数字到 Kaprekar 常数的过程的程序无限循环
- heroku - Heroku - 多个测功机
- xamarin - 如何将数据从 xamarin 共享项目传递到 html
- apache-kafka - Apache Kafka 分区保证消息的顺序
- apache-poi - 需要在页面末尾插入文本但表格仍在下一页继续