未找到記錄時傳回NULL
使用SQL 從資料庫擷取資料時,常會遇到所需記錄可能不存在的情況不存在。預設情況下,這種情況會導致未找到行錯誤。不過,有一些方法可以處理這個問題並傳回一個特定的值。
子查詢封裝
一個簡單而有效的方法,在沒有找到記錄時傳回空值就是將查詢封裝在子查詢中。此技術將“row-not-found”錯誤轉換為空值。
這是一個範例:
SELECT (SELECT idnumber FROM dbo.database WHERE number = '9823474') AS idnumber;
相容性注意事項
此方法已經過測試和驗證,可在PostgreSQL、SQLite、 SQL Server、MySQL 和Firebird 中執行。然而,對於其他資料庫系統,可能需要略有不同。
例如,在 Oracle 中,需要從名為 DUAL 的虛擬 1 行表進行查詢:
SELECT (SELECT id FROM tbl WHERE id = 9823474) AS id FROM DUAL;
DB2 需要類似的方法,使用 SYSIBM.SYSDUMMY1作為虛擬表:
SELECT (SELECT id FROM tbl WHERE id = 9823474) AS id FROM SYSIBM.SYSDUMMY1;
透過將查詢封裝在子查詢,您可以有效地處理缺少記錄的情況並傳回空值,而不是面臨行未找到的錯誤。
以上是如何在 SQL 查詢中傳回 NULL 而不是未找到行錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!