sqlite3 データベースには、date という列があります。すべての日付値が同一の場合に同一の値を返すクエリが必要です。そうでない場合は、NULL を返す必要があります。
これをSQLで最もよく表現するにはどうすればよいですか?
SELECT CASE WHEN MIN(DateColumn) = MAX(DateColumn)
THEN MIN(DateColumn)
ELSE NULL -- not needed, added for clarity
END AS result
FROM TableX ;
SQLite についてはわかりませんが、ほとんどの DBMS では(DateColumn)
、MIN/MAX 条件にインデックスがある場合、COUNT()
.
SELECT CASE WHEN COUNT(DISTINCT DateColumn) = 1
THEN DateColumn
ELSE NULL
END AS result
FROM YourTable;