#sql #sqlite
#sql #sqlite
Вопрос:
Я работаю с SQLite. У меня есть таблица T с двумя полями D1 и D2, которые являются датами, хранящимися в виде текстовых полей. Мне нужно вычислить количество дней между заданной датой (назовем ее DF) и D1, но когда D2 не равно нулю, чтобы использовать это вместо.
Итак, допустим, мы просто вычисляли количество дней между 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
Кто-нибудь знает, как этого добиться?
Ответ №1:
Используйте coalesce()
:
SELECT CAST((julianday(DF) - julianday(coalesce(D2, D1))) AS INTEGER)
FROM T
Комментарии:
1. Идеальный. Большое вам спасибо. Я скоро выберу его в качестве ответа (для этого нужно подождать еще 5 минут).