我在ORACLE鍵入下面的SQL,它通過:爲什麼SQL'選擇1從雙方0 = null;'通過在Oracle
select 1 from dual where 0=null;
爲什麼SQL傳遞,它似乎沒有編譯錯誤奇怪。而且,如果null是表中的varchar2列,它也會通過。
create table test
(
a varchar2(100),
b varchar2(100)
)
insert into test(a,b) VALUES (null, 'abc');
commit;
select * from test where a=0
更新:
由於列「一」是VARCHAR2類型,0是一個數字類型,如果一個不包含空值,它會報告錯誤。
create table test
(
a varchar2(100),
b varchar2(100)
)
insert into test(a,b) VALUES ('abc', 'abc');
commit;
select * from test where a=0
--ORA-01722 "invalid number"
謝謝。
你有什麼關於查詢的期望? –
你是什麼意思「通行證」? '0 = null'沒有任何*語法錯誤。它從來沒有評估爲真。 –
你的問題到底是什麼?這裏意外的是什麼? – Bohemian