SQL实践语句:筛选表中异常数据!关键词:EXISTS

语句示例

sql 复制代码
SELECT COUNT(1) FROM
			(SELECT T.CUSTOMERCODE,T.CUSTOMERNAME,T.RECSTS,T.INDATTRODE,T.COUNTRYCODE,T.SAFECODE,T.REGIONCODE,T.ECONTYPECODE
			FROM WHJH.TBL_CODECUSTOMER_NEW T 
			WHERE
			T.BATCHNO>=(SELECT BATCHNO FROM WHJH.TBL DATAFILE_MAKE_BATCHNO) -6 ) A
WHERE
A.CUSTOMERNAME IS NULL
OR A.RECSTS IS NULL 
OR A.INDATTRCODE IS NULL
OR NOT EXISTS (SELECT 1 FROM WHJH.TBL_CODECOUNTRM WHERE A.COUNTRYCODE=COUNTRYCODE)
OR NOT EXISTS (SELECT 1 FROM WHOH.TL CODESAFE WHERE A.SAFECODE=SAFECODE)
OR NOT EXISTS (SELECT 1 FROM WHJH.TBL.CODEREGION WHERE A.REGIONCODE=REGIONCODE)
OR NOT EXISTS (SELECT 1 FROM WHJH.CODEECONTYPE WHERE A.ECONTYPECODE=ECONTYPECODE)

语句解读

1、优化目标集合

将条件查询出来的结果集作为新的结果集,用以作为下一步数据筛选的目标集。减少了全表扫描,提升了查询速度。

sql 复制代码
//改进前
SELECT T.CUSTOMERCODE,T.CUSTOMERNAME,T.RECSTS,T.INDATTRODE,T.COUNTRYCODE,T.SAFECODE,T.REGIONCODE,T.ECONTYPECODE
FROM WHJH.TBL_CODECUSTOMER_NEW T 
WHERE
T.BATCHNO>=(SELECT BATCHNO FROM WHJH.TBL DATAFILE_MAKE_BATCHNO) -6 
AND '子查询'...

//改进后
SELECT COUNT(1) FROM
			(SELECT T.CUSTOMERCODE,T.CUSTOMERNAME,T.RECSTS,T.INDATTRODE,T.COUNTRYCODE,T.SAFECODE,T.REGIONCODE,T.ECONTYPECODE
			FROM WHJH.TBL_CODECUSTOMER_NEW T 
			WHERE
			T.BATCHNO>=(SELECT BATCHNO FROM WHJH.TBL DATAFILE_MAKE_BATCHNO) -6 ) A
WHERE
'子查询' 
AND '子查询'...

2、exists字句注意

例句中的相关语句为:

sql 复制代码
NOT EXISTS (SELECT 1 FROM WHJH.TBL_CODECOUNTRM WHERE A.COUNTRYCODE=COUNTRYCODE)

解读1:之所以,SELECT 1,是因为EXISTS只为了判断集合中是否存在该语句。

解读2:之所以,TBL_CODECOUNTRM 没有再提取别名,是因为字句中除了A表外只有一个表,不存在异议,无需提取别名。

相关推荐
阿华的代码王国33 分钟前
MySQL ------- 索引(B树B+树)
数据库·mysql
Hello.Reader1 小时前
StarRocks实时分析数据库的基础与应用
大数据·数据库
执键行天涯1 小时前
【经验帖】JAVA中同方法,两次调用Mybatis,一次更新,一次查询,同一事务,第一次修改对第二次的可见性如何
java·数据库·mybatis
liupenglove1 小时前
golang操作mysql利器-gorm
mysql·golang
yanglamei19621 小时前
基于GIKT深度知识追踪模型的习题推荐系统源代码+数据库+使用说明,后端采用flask,前端采用vue
前端·数据库·flask
Darling_001 小时前
LeetCode_sql_day28(1767.寻找没有被执行的任务对)
sql·算法·leetcode
zxrhhm1 小时前
SQLServer TOP(Transact-SQL)
sql·sqlserver
叫我:松哥1 小时前
基于Python flask的医院管理学院,医生能够增加/删除/修改/删除病人的数据信息,有可视化分析
javascript·后端·python·mysql·信息可视化·flask·bootstrap
工作中的程序员2 小时前
ES 索引或索引模板
大数据·数据库·elasticsearch
严格格2 小时前
三范式,面试重点
数据库·面试·职场和发展