学习问题参考/解决/保留

自我控制应当成为生活的基调, 美好生活是理性来指导的并且紧紧抓住崇高的理想, 人的一生,就是进行尝试,尝试得越多,生活就越美好!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

关于如select 1 from **中的"1"。

Posted on 2008-06-24 11:31  下载软件  阅读(2745)  评论(0)    收藏  举报

     在这里我主要讨论的有以下几个select 语句:

table表是一个数据表,假设表的行数为10行,以下同。

1:select  1 from table     

2:select count(1)  from table  

3:select sum(1) from table

对第一个select语句,我刚开始以为是“1”代表是列名,从2,3种顺推得出得结果:)有点无耻吧。不过通过我自己得观察,这样我觉得是不对的,所以我在SQL SERVER中测试了一下,发现结果如下:

1:测试结果,得出一个行数和table表行数一样的临时列(暂且这么叫,我也不知道该叫什么),每行的列值是1;

2:得出一个数,该数是table表的行数;

3:得出一个数,该数是table表的行数;

然后我又用“2”测试,结果如下:

1:得出一个行数和table表行数一样的临时列,每行的列值是2;

2:得出一个数,该数是table表的行数;

3:得出一个数,该数是table表的行数×2的数

然后我又用更大的数测试:

1:得出一个行数和table表行数一样的临时列,每行的列值是我写在select后的数;

2:还是得出一个数,该数是table表的行数;

3:得出一个数,该数是table表的行数×写在select后的数

综上所述:我发现第一种的写法是增加临时列,每行的列值是写在select后的数;第二种是不管count(a)的a值如何变化,得出的值总是table表的行数;第三种是计算临时列的和。

小结:自以为SQL用的挺多的,但是没想到这里的几种写法让我一下子轻易放过去了,看来以后还是要好好注意,不要放过任何疑点。