我撰寫了一個 SQL 來從 A 列不為空的 oracle 資料庫中查詢表墊。A 列是 varchar,其默認值為 ' '。我寫了下面的sql:
select * from mat where matnr='test' and A <>'' and A <> ' '
但它回傳一個空資料集。
然后我跑了:
select * from mat where matnr='test' and A <> ' '
這個查詢有效。那么是什么原因呢?謝謝。
uj5u.com熱心網友回復:
在 Oracle 中,''表示NULL. 任何與 NULL 的直接比較都回傳 NULL 而不是 TRUE 或 FALSE,所以你不能說A <> ''- 你必須說A IS NOT NULL。
另一種可能性是使用該NVL功能,替換NULL為' ',這樣您就可以說
select * from mat where matnr='test' and NVL(A, ' ') <> ' '
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/448724.html
下一篇:SQl-相交,需要表1中的更多列
