Oracle相关文档,希望互相学习,共同进步
1.场景描述
需求:查询不是某个机构的数据。
同事SQL:where substr(bank_code,1,9) not in('014009001');
看SQL似乎没什么问题,分析数据后发现 not in 不能查询出空数据。
2. 模拟测试
(1)创建测试表
sql
create table feng_aa
(ban_code varchar2(100),
ban_name varchar2(100)
)
(2)插入测试数据
(3)不带nvl的查询结果:查不出空的-少数据
select T.*,T.ROWID from feng_aa t where substr(ban_code,1,9) not in('014009001');
(4)带nvl的查询结果:可检索空的
select T.*,T.ROWID from feng_aa t where substr(nvl(ban_code,'X'),1,9) not in('014009001');
3.结论
总结:
where 条件中,如果字段有为空的,无法not in 筛选出空的内容。必须带上nvl 转义处理后,再进行查询。
项目管理--相关知识
项目管理-项目绩效域1/2_八大绩效域和十大管理有什么联系-CSDN博客
项目管理-计算题公式【复习】_项目管理进度计算题公式:乐观-CSDN博客
项目管理-相关知识(组织通用治理、组织通用管理、法律法规与标准规范)-CSDN博客
Oracle其他文档,希望互相学习,共同进步
Oracle-找回误删的表数据(LogMiner 挖掘日志)_oracle日志挖掘恢复数据-CSDN博客
oracle 跟踪文件--审计日志_oracle审计日志-CSDN博客
ORA-12899报错,遇到数据表某字段长度奇怪现象:"Oracle字符型,长度50"但length查却没有50_varchar(50) oracle 超出截断-CSDN博客