0

在 sqlite3 数据库中,我有一个名为 date 的列。我需要一个查询,如果所有日期值都相同,则返回相同的值。如果不是,它应该返回 NULL。

我怎样才能最好地在 SQL 中表达这一点?

4

2 回答 2

4
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().

于 2013-10-24T14:21:03.947 回答
1
SELECT CASE WHEN COUNT(DISTINCT DateColumn) = 1
            THEN DateColumn
            ELSE NULL
        END AS result    
FROM YourTable;
于 2013-10-24T14:35:53.540 回答