Yahoo Answers is shutting down on May 4th, 2021 (Eastern Time) and beginning April 20th, 2021 (Eastern Time) the Yahoo Answers website will be in read-only mode. There will be no changes to other Yahoo properties or services, or your Yahoo account. You can find more information about the Yahoo Answers shutdown and how to download your data on this help page.

[SQL]能否一次計算各欄位的筆數??

想請教一下

SQL語法中可以利用count(欄位名稱)來計算該欄位的比數

可是小弟我的檔案總共有79個欄位

有沒有比較簡便的程式寫法阿..

我不想寫count()寫79次阿....

請教一下各位

謝謝囉....

3 Answers

Rating
  • 2 decades ago
    Favorite Answer

    假設有個 Table 裡有兩個欄位 FIELD_1 及 FIELD_2

    一個 Table 不管有多少個欄位,

    Select Count(*) From TABLE

    Select Count(FIELD_1) From TABLE

    Select Count(FIELD_2) From TABLE

    計算出來的筆數都是一樣的,

    如果是要分析計算某個欄位的資料筆數,

    那麼用下列的語法就可以計算出符合條件的筆數

    Select Count(*) From TABLE Where FILED_1='A'

    Select Count(*) From TABLE Where FILED_1='B'

    Select Count(*) From TABLE Where FILED_2='1'

    Select Count(*) From TABLE Where FILED_2='2'

    應該不需要每個欄位一個個去 Count 吧......

    2006-02-22 13:07:19 補充:

    原來如此,Null 竟會對 Count 指令造成影響,感謝 周 的說明,以下是用 SQL 跑 Cursor 的語法把每個欄位的筆數,以 Print 的方式呈現在 SQL Server的 Query Analyzer 裡,提供您參考....

    2006-02-22 13:08:11 補充:

    Declare @FIELD_NAME varchar(20)Declare @FIELD_CNT bigintDeclare FIELD_CNT_CUR Cursor For Select SysColumns.NAME From SysObjects INNER JOIN SysColumns ON SysObjects.ID = SysColumns.ID Where SysObjects.NAME = 'DATATABLE'

    2006-02-22 13:08:50 補充:

    Open FIELD_CNT_CUR Fetch Next From FIELD_CNT_CUR Into @FIELD_NAMEWhile @@FETCH_STATUS=0Begin Select @FIELD_CNT=Count(@FIELD_NAME) From DATATABLE Print @FIELD_NAME + '筆數:' + Convert(varchar(10),@FIELD_CNT)

    2006-02-22 13:10:24 補充:

    Fetch Next From FIELD_CNT_CUR Into @FIELD_NAMEEndClose FIELD_CNT_CURDeallocate FIELD_CNT_CUR因為補充說明有字數上限所以分好幾篇貼,您只要依序看即可。

  • 2 decades ago

    Select Count(*) From TABLE

    的結果不一定等於

    Select Count(FIELD_1) From TABLE

    Count(*) 是會把所有比數算出

    Count(FIELD_1) 是會把FIELD_1裡有質(去除null)的才會統計

  • 2 decades ago

    不好意思捏

    我用count(*)試還是試不出我要的結果...不知是哪錯了..@@

    我現在手邊資料有79個欄位(A1-A79)

    我想要計算每個欄位的紀錄筆數

    現在我只會count(A1),count(A2),...,count(A79)

    有點麻煩..因為之後還有一個資料是一百多個欄位的...

    所以才想問有沒有比較好的寫法...

    再請指教....

    謝謝囉...

Still have questions? Get your answers by asking now.