SQLite:查询返回不同的值或NULL

时间:2013-10-24 14:15:30

标签: sql sqlite

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

如何在SQL中最好地表达这一点?

2 个答案:

答案 0 :(得分: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()的任何查询更有效。

答案 1 :(得分:1)

SELECT CASE WHEN COUNT(DISTINCT DateColumn) = 1
            THEN DateColumn
            ELSE NULL
        END AS result    
FROM YourTable;