前因:突然项目中给我说新加一个字段,过段时间又要我初始化该字段,然后我记得Navicat能设置默认,结果是已经添加的字段再设置默认不管用,于是想通过sql语句批量update一下咯;
由于添加该字段有一段时间了,所以有些数据该字段是有值的,现在要把历史数据该字段置为 0;然后我先执行了一段查询sql;结果...
SELECT *
FROM PROJECTINFOS
WHERE IS_NOINPUT !=0 and IS_NOINPUT !=1
明明数据库中存在大量该字段既不为0也不为1的数据啊,怎么就一条也查询不到。一开始很奇怪,后来才发现,原来是这么回事。
oracle中表示“不等于” 可以这么表示 != ,<>;但是,执行select * from 表名 where IS_NOINPUT != ‘0’ and IS_NOINPUT != ‘1’时,
当 IS_NOINPUT 为 null 时,并不会显示,这是因为 null 与其他条件不同,<>
,!=
这类运算符只能查出非空字段;
Oracle中的NULL只能用IS NULL
或者IS NOT NULL
来进行判断!
如果你想要查询IS_NOINPUT 字段为空的数据,条件需改为 select * from 表名 where IS_NOINPUT is null ;如下:
单独查询某字段为null 或者不为null,你可以这样查询;
select * from 表名 where 字段名 is null
select * from 表名 where 字段名 is not null
所以最后,我初始化的还是执行的update 语句;全量更新一遍;如果你们有啥好的建议,欢迎下方留言。
UPDATE PROJECTINFOS set IS_NOINPUT = '0' WHERE IS_NOINPUT is null
❤如果文章对您有所帮助,就在文章的右上角或者文章的末尾点个赞吧!(づ ̄ 3 ̄)づ
❤如果喜欢大白兔分享的文章,就给大白兔点个关注吧!(๑′ᴗ‵๑)づ╭❤~
❤对文章有任何问题欢迎小伙伴们下方留言或者入群探讨【群号:708072830】
❤鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复讨论(请勿发表攻击言论)