我在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