Group-By
如何在 SQLite 中使用非聚合/裸列或使用多行 SELECT 強制執行 GROUP BY 的嚴格處理
與其他一些 RDBMS 不同,SQLite 確實允許在
SELECT
查詢中使用裸列GROUP BY
,即並非所有選定的列都需要成為 group by 或聚合函式的一部分。在這種情況下,將為分組的輸出行選擇結果集中的第一個值,而不管該值是否在結果集中的所有條目中都是恆定的。類似的事情似乎發生在返回多行的
UPDATE
查詢SELECT
中SELECT
,其中只能更新一行。在這種情況下,來自 的第一個結果SELECT
用於更新目標行。我想知道在這種情況下是否可以強制 SQLite 更加嚴格並拋出錯誤。
為了說明,考慮這個 fiddle。這將
B
使用SELECT
. 相反,我想要的是生成錯誤。
SQLite 向所有標量子查詢隱式添加“LIMIT 1” 。沒有內置機制可以改變這一點;您將不得不修改 SQLite 的原始碼。