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表外只有一个表,不存在异议,无需提取别名。

相关推荐
陌上丨5 小时前
Redis的Key和Value的设计原则有哪些?
数据库·redis·缓存
AI_56785 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
ccecw5 小时前
Mysql ONLY_FULL_GROUP_BY模式详解、group by非查询字段报错
数据库·mysql
JH30735 小时前
达梦数据库与MySQL的核心差异解析:从特性到实践
数据库·mysql
数据知道6 小时前
PostgreSQL 核心原理:如何利用多核 CPU 加速大数据量扫描(并行查询)
数据库·postgresql
麦聪聊数据7 小时前
Web 原生架构如何重塑企业级数据库协作流?
数据库·sql·低代码·架构
未来之窗软件服务7 小时前
数据库优化提速(四)新加坡房产系统开发数据库表结构—仙盟创梦IDE
数据库·数据库优化·计算机软考
Goat恶霸詹姆斯8 小时前
mysql常用语句
数据库·mysql·oracle
大模型玩家七七9 小时前
梯度累积真的省显存吗?它换走的是什么成本
java·javascript·数据库·人工智能·深度学习
曾经的三心草9 小时前
redis-9-哨兵
数据库·redis·bootstrap