select * 与 select 1 有区别吗?单从取记录数的角度讲,用哪个更好些?
select * 与 select 1 有区别吗?单从取记录数的角度讲,用哪个更好些?
------解决方案--------------------select * ---打印该表所有的记录以及所有的字段..
select 1 ---打印count(*)行单列1 --不明白你要这个干吗?
------解决方案--------------------select 1 from....where...
一般用于子查询中,这个地方替换成其他数字也可以,关键在于where后边的条件,如果条件符合,自然会返回这个相应的数字 ,也就为真
select ...from t1 a where exists(select 1 from t2 where col=a.col)
------解决方案--------------------select * --会进行表扫描
------解决方案--------------------select 1---多用语判断语句中!
------解决方案--------------------得到的中间结果集不同;
后者明显要小的多;所以效率上也会小很多。因为它需要的磁盘IO数更少。
------解决方案--------------------就像流氓说的例子 判断用的 唯一就是减少了占用内存的空间
因为sql server对于现实的东西会自动存储内存里 如果并不将其显示不会占用太多内存
逻辑运算速度上应该没有差别
------解决方案--------------------不同,但用在exists()子句中是相同的.