【SQL的學習筆記】判空時賦值

SQL判空時賦值

SQL做統計查詢時,經常需要在分組之後統計另一個字段的總數。這是往往會遇到COUNT(待統計字段)結果爲NULL的情況。如果直接將結果NULL發送給調用者,對方會很難處理。於是需要在傳出判斷:若爲空,則傳0。

要實現這一功能,可使用ISNULL函數。

函數調用方式

ISNULL(需要進行判空的數值,希望判空時返回的值)

調用示例

表Class(AID,班級名稱,班主任姓名)

AID Name HeadTeacher
1 高一一班 ……
2 高一二班 ……
3 高一三班 ……
4 高二一班 ……

表Student(AID,學生姓名,所在班級)

AID Name ClassAID
1 張三 1
2 李四 1
3 王五 1
4 張三 2
5 李四 2
6 王五 2
7 趙六 2

顯然,Student表的ClassAID字段引用自Class表的AID字段,用以說明這個同學屬於哪個班級

--這是一個統計查詢:查詢各個班都分別有多少學生
SELECT
	 [ClassAID] = C.AID
	,[StudentNumber] = COUNT(S.AID)
FROM Class AS C
JOIN Student AS S ON S.ClassAID = C.AID
GROUP BY C.AID
--上面這個查詢會出現一個問題,倘若有一個班級沒有任何學生,那麼那個班級的‘學生數’就會被統計爲NULL

結果會是這樣的:

ClassAID StudentNumber
1 3
2 4
3 NULL
4 NULL

於是希望在結果爲空的時候顯示0而非NULL
代碼如下:

--這是一個統計查詢:查詢各個班都分別有多少學生
SELECT
	 [ClassAID] = C.AID
	,[StudentNumber] = ISNULL(COUNT(S.AID),0)
FROM Class AS C
JOIN Student AS S ON S.ClassAID = C.AID
GROUP BY C.AID

如此,結果就是這樣的:

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