在oracle中在一个表中,我有一个字段char(1)。字段值是,1或空字段是空的所以我试着
select p.id, p.confidential_phone from person p where p.confidential_phone=''
未返回结果我用= ' 'is null试过相同结果
= ' '
is null
eagi6jfj1#
oracle中的''是NULL。不要使用= '',使用IS NULL。您的查询应该像这样工作:
''
NULL
= ''
IS NULL
select p.id, p.confidential_phone from person p where p.confidential_phone is null
考虑demo
mwkjh3gx2#
Oracle将空字符串视为NULL,因此IS NULL将起作用
CREATE TABLE t1 (id int, confidential_phone char(1))
INSERT INTO t1 VALUES (1,'1')
INSERT INTO t1 VALUES (2,'0')
INSERT INTO t1 VALUES (3,'')
INSERT INTO t1 VALUES (4,NULL)
SELECT * FROM t1 WHERE confidential_phone IS NULL
fiddle
2条答案
按热度按时间eagi6jfj1#
oracle中的
''
是NULL
。不要使用= ''
,使用IS NULL
。您的查询应该像这样工作:
考虑demo
mwkjh3gx2#
Oracle将空字符串视为NULL,因此IS NULL将起作用
fiddle