使用SELECT 1 FROM Tab来提高效率
1. 统计一个表的总记录数:SELECT COUNT(1)/SUM(1)? FROM tab;
?? 解释:
???? select 1 from table;与select anycol(目的表集合中的任意一行) from table;与select * from table 从作用上来说是没有差别的,都是查看是否有记录,一般是作条件查询用的。select 1 from 中的1是一常量(可以为任意数值),查到的所有行的值都是它,但从效率上来说,1>anycol>*,因为不用查字典表。
?
?
2.
?? select * from tab1 where not exists (select 1 from tab2 where tab1.col=tab2.col)
--看这个条件tab1.col=tab2.col,如果存在这样的数据子查询就返回1.
--整个查询的意思就是在tab1中存在,在tab2中不存在的数据
?
select * from t1 where not exists(select 1 from t2 where t1.id=t2.id) ---表2不存在的与t1相同的id号
--意思就是查询t1中与t2不同的id