關於如select 1 from **中的"1"。

     在這裏我主要討論的有以下幾個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用的挺多的,但是沒想到這裏的幾種寫法讓我一下子輕易放過去了,看來以後還是要好好注意,不要放過任何疑點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章