替換 SQL Server 2008R2 中的「IS DISTINCT FROM」和「IS NOT DISTINCT FROM」
Microsoft SQL Server 2008R2 本身不支援標準 SQL 運算子「IS DISTINCT FROM」和「IS NOT DISTINCT FROM」。本指南提供了在 SQL Server 2008R2 中使用的等效表達式。
取代「IS DISTINCT FROM」
如果兩個值不同,或其中一個值為 NULL,則「IS DISTINCT FROM」運算子傳回 TRUE。 這是等效的:
<code class="language-sql">((a != b OR a IS NULL OR b IS NULL) AND NOT (a IS NULL AND b IS NULL))</code>
「不不同於」的替代
如果兩個值相同,或兩個值都是 NULL,則「IS NOT DISTINCT FROM」運算子傳回 TRUE。相當於:
<code class="language-sql">(a = b OR (a IS NULL AND b IS NULL))</code>
重要注意事項
這些替換並不能完美反映標準運算子的行為,特別是在超出簡單相等的比較中的 NULL 處理。 然而,它們在 SQL Server 2008R2 資料類型相容性的限制內提供了實用的解決方案。 將這些替代方案應用於複雜查詢時請務必小心。
以上是如何在SQL Server 2008R2中重寫「IS DISTINCT FROM」和「IS NOT DISTINCT FROM」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!