मैं हमेशा निम्नलिखित की तरह कुछ रहस्यमय टी-एसक्यूएल व्यवहार के बारे में हैरान हूं
-- Create table t and insert values.
use tempdb
CREATE TABLE dbo.t (a INT NULL);
-- insert 3 values
INSERT INTO dbo.t values (NULL),(0),(1);
GO
set ansi_nulls off -- purposely turn off, so we can allow NULL comparison, such as null = null
go
-- expect 3 rows returned but only 2 returned (without null value row)
select * from dbo.t where a = a
यह तालिका में सभी पंक्तियों को पुनः प्राप्त करने के बारे में नहीं है और ANSI_NULLS के उपयोग से बचने के बारे में भी नहीं है।
मैं बस कुछ अंतर्दृष्टि को टालना चाहता हूं कि टी-एसक्यूएल इस तरह का व्यवहार क्यों करता है।