sql做統計查詢時,經常需要在分組之後統計另乙個欄位的總數。這是往往會遇到count(待統計字段)結果為null的情況。如果直接將結果null傳送給呼叫者,對方會很難處理。於是需要在傳出判斷:若為空,則傳0。
要實現這一功能,可使用isnull函式。
函式呼叫方式
isnull(需要進行判空的數值,希望判空時返回的值)
呼叫示例
表class(aid,班級名稱,班主任姓名)
aidname
headteacher
1高一一班……2
高一二班……3
高一三班……4
高二一班
……表student(aid,學生姓名,所在班級)
aidname
classaid1張三
12李四1
3王五14
張三25李四
26王五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
studentnumber13
243null
4null
於是希望在結果為空的時候顯示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
studentnumber13
2430
40
SQL的字段判空
請看下面的 products 表 p id productname unitprice unitsinstock unitsonorder 1computer 69925152 printer 36536 3telephone 28015957 假如 unitsonorder 是可選的,而且可以包含...
Python學習筆記(三)奇妙的賦值
注 學習筆記 於自己在學習python過程中遇到的小問題及對網路諸多大牛提供的方法的實踐。一 同時賦值 a,b,c 1,2,3 print a,b,c 1 2 3 二 值的互換 a b b,a print a,b,c 2 1 3 三 序列解包 sequence unpacking 的神奇應用 1 以...
關於SQL的學習筆記
將兩次查詢的記錄結果混和成乙個結果進行輸出 中心思想在於將兩次查詢的結果分別作為乙個新的表,將2張新表盡心一次混和查詢,一共至少3次查詢,成功輸出結果表 基本結構為 select from select from datatable1 下面是我的例子 select distinct from sel...