日期:2014-05-16  浏览次数:20424 次

使用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