SELECT DUMMY FROM DUAL WHERE DUMMY不爲NULL;之間有什麼 「IS NOT NULL」 和 「NOT IN NULL」 有什麼區別?爲什麼這兩個Oracle查詢返回不同的結果?
結果:返回 'X';
SELECT DUMMY FROM DUAL WHERE DUMMY NOT IN NULL;
結果:返回什麼。
0
A
回答
0
- 假人DUAL是一個VARCHAR2,你選擇從DUAL是不是空(IS NOT NULL)所有假人。 DUAL有一行DUMMY ='X'。
- 現在你說,假人是不是在一組空的,這是沒有意義的真正和選擇將返回任何結果。
NULL是一個特殊字符,而不是零。它表示沒有真實的數據(包含零和空白的數據)。
1
在Oracle二進制表達式可以計算爲三種狀態:TRUE
,FALSE
和NULL
其中NULL
可以被認爲是相同的,爲未定義或未知的值。應用二元運算到NULL
值會給出一個NULL
輸出(而不是如你所料,TRUE
或FALSE
):
查詢:
SELECT DUMMY FROM DUAL WHERE DUMMY NOT IN (NULL)
是等價的:
SELECT DUMMY FROM DUAL WHERE NOT(DUMMY = NULL)
而且WHERE
子句的值爲NOT(DUMMY = NULL)
到NOT NULL
哪些依次評估爲NULL
。由於WHERE
濾波器的計算結果爲一個非TRUE
值的行被排除。
的IS NULL
操作專爲測試值是否是NULL
,並會做你想要什麼在平等=
運營商或運營商IN
不會。
所以:
Boolean Operation Result
----------------- ------
NULL = NULL NULL
NULL IN (NULL) NULL
NULL IS NULL TRUE
相關問題
- 1. != null和!== null之間有什麼區別?
- 2. 這兩個查詢有什麼區別?爲什麼不同的結果
- 3. undefined和null之間有什麼區別?
- 4. 爲什麼這個查詢返回null?
- 5. 這些(bCondition == NULL)和(NULL == bCondition)之間有什麼區別?
- 6. (null)和<null>有什麼區別?
- 7. 這兩個張量之間有什麼區別,爲什麼?
- 8. 這兩個....之間有什麼區別?
- 9. 在SMSS中查詢結果中NULL和Nothing之間有什麼區別?
- 10. 爲什麼這兩個Cypher查詢返回不同的結果?
- 11. 這兩個查詢有什麼區別?
- 12. 這兩個查詢有什麼區別?
- 13. 這兩個查詢有什麼區別
- 14. 「foo is null」和「foo == null」有什麼區別
- 15. 在MySql中有什麼區別!= NULL和IS NOT NULL
- 16. 「x is null」和「x == null」有什麼區別?
- 17. 「x IS NULL」和「NOT(x IS NOT NULL)」之間的區別是什麼?
- 18. a == null和a === null之間有什麼區別?
- 19. 爲什麼我的查詢返回null
- 20. 這兩行之間有什麼區別?
- 21. is和=有什麼區別?
- 22. `==`和`is`有什麼區別?
- 23. 爲什麼這兩個查詢有不同的結果?
- 24. 這兩個查詢之間有什麼區別
- 25. 爲什麼此查詢返回NULL?
- 26. 爲什麼這個返回null?
- 27. 這個SQL查詢爲什麼返回這個結果?
- 28. SQL查詢之間有什麼區別?
- 29. SQL Server:爲什麼這個查詢不返回NULL值?
- 30. 爲什麼這個HashMap.get返回null?
http://www.techrepublic.com/article/oracle-tip-understand-how-nulls-affect-in-and-exists/ – CBroe