1
這sqlite
查詢返回預期零行:總結SQLite的功能 - 意想不到的結果
SELECT 1 FROM tbl WHERE 0;
這個查詢,在另一方面,返回一個包含空列一行:
SELECT MAX(1) FROM tbl WHERE 0;
爲什麼第二個查詢返回一行,而不是零行?
這sqlite
查詢返回預期零行:總結SQLite的功能 - 意想不到的結果
SELECT 1 FROM tbl WHERE 0;
這個查詢,在另一方面,返回一個包含空列一行:
SELECT MAX(1) FROM tbl WHERE 0;
爲什麼第二個查詢返回一行,而不是零行?
'正常'查詢返回FROM子句中表的每個(過濾)記錄的一個結果。
但是,當您使用某個聚合函數時,結果在源表中每個組都有一條記錄。如果沒有GROUP BY子句,整個表就是一個組。
對於GROUP BY,沒有空組的結果。 但是,如果沒有GROUP BY,您總是隻有一個組,並獲得一個結果記錄,即使該組最終爲空。
你的查詢,如果它也使用GROUP BY(以恆定值,這將使所有記錄,如果有任何,放到同一個組)將獲得與MAX零行:
SELECT MAX(1) FROM tbl WHERE 0 GROUP BY NULL;