SQL NULL = NULL ?
為何查詢句用WHERE Fieldname=null查不到我要的資料呢?
前陣子看到有人問到為什麼在SQL TABLE裡明明看到值顯示的是NULL
為何查詢句用WHERE Fieldname=null查不到我要的資料呢?
這就要先說明什麼是NULL ,NULL你必須把它想成就是不知道它是什麼,換句說它可能什麼都是
,所以如果這定義的話,那麼你當然不能用 欄架A=NULL 來查你想要的資料,因為欄架A裡存的NULL不能確定是你條件給的NULL
,很鐃舌吧,說白話一點就是你都不知道它是什麼了,你如何去認定它會相等?不信?
可以試試下列語法
SELECT CASE WHEN NULL=NULL THEN 'TRUE' ELSE 'FALSE' END
SELECT CASE WHEN NULL IS NULL THEN 'TRUE' ELSE 'FALSE' END
SELECT CASE WHEN NULL='' THEN 'TRUE' ELSE 'FALSE' END
由於NULL的特性,在SQL裡有了 IS NULL 、IS NOT NUL、ISNULL(aa,bb) 這樣的話法
所以下次千萬別再用 =NULL 來判斷值為NULL的資料囉
請記得要用 WHERE 欄位A IS NULL
若本文對您有所幫助,歡迎轉貼,但請在加註【轉貼】及來源出處,並在附上本篇的超連結,感恩您的配合囉。
By No.18