比較 SQL Server 中的 NULL 值
在 SQL Server 中,處理查詢中的可為空值可能具有挑戰性。考慮這樣一種情況:WHERE 子句中使用的變數可能為 NULL,從而導致需要使用 IF ELSE 語句進行條件查詢。但是,可以在單一查詢中優雅地處理此類情況。
使用EXISTS 進行NULL 比較
您可以使用EXISTS,而不是使用條件方法運算子有效比較NULL 值:
SELECT * FROM Customers WHERE EXISTS ( SELECT OrderID INTERSECT SELECT @OrderID );
此查詢有效執行以下操作步驟:
因此,如果@OrderID 為NULL,則查詢將傳回OrderID 也為NULL 的行,無論資料類型為何。如果 @OrderID 具有非 NULL 值,則查詢將傳回 OrderID 與該值相符的行。
其他資源
進一步了解查詢計畫中的相等比較,請參閱文章「未記錄的查詢計畫:相等比較」。
以上是EXISTS 和 INTERSECT 如何有效率地處理 SQL Server 查詢中的 NULL 值比較?的詳細內容。更多資訊請關注PHP中文網其他相關文章!