sql count查詢到空結果時候如何補0

時間 2021-05-30 18:59:23

1樓:拯救夢想

查詢條件 classid in(1,2,3,4) 中的 (1,2,3,4)只是提問者舉的乙個例子,這個值有可能是 (1,2,3,4,5,6),也有可能是其它。所以,不能在 SQL 裡面直接寫死這些值。

那麼,classid 是怎麼來的,總有一張表儲存了最全的 classid 吧,假設這張表就叫作 class 吧,SQL 就可以這麼寫:

SELECTa.

classid

,IFNULL(b

.cnt,0

)AScntFROM

(SELECT

DISTINCT

classid

FROM

class

WHERE

classidIN(

1,2,

3,4))

aLEFT

JOIN

(SELECT

classid

,COUNT

(classid)AS

cntFROM

member

WHERE

classidIN(

1,2,

3,4)

GROUP

BYclassid)b

ONb.classid=a

.classid

假如提問人的人就是想把傳入的數值作為結果全部展示,比如傳入完全不存在的 classid = 666,那上面的 SQL 就不適用了。

2樓:

selectT.

classId,(

select

count(*

)from

member

mwherem.

classId=T

.classId

)from

(values(1

),(2),

(3),(

4))asT

(classId

)SqlServer2008及以上版本支援。

3樓:

SELECTb.

id,COUNT(a

.classId

)FROM

dbo.

member

aRIGHT

JOIN

(SELECT

'1'AS

idUNION

SELECT

'2'AS

idUNION

SELECT

'3'AS

idUNION

SELECT

'4'ASid)

bONa.

classId=b

.idGROUPBYb

.id上班時間翻知乎放鬆放鬆結果怎麼還是搞這些東西,嗚嗚

redis查詢資料 比如通過一所學校查詢到學校的所有人的資訊,當然資料是很多的,要怎麼實現呢?

zhanjia REDIS CURSOR或者PIPELINE,看官網文件,很全,可以用HASH結構查出所有的目的是啥?展示?不需要分頁麼?百萬級的話MYSQL效能也不會特別糟糕 江花勝火 瀉藥。百萬級的資料不能算多吧,要把資料量化為GB,當然每個人再跟乙份5MB的簡歷,那我就不說話了。redis是用...

vba 如何進行查詢單元格指定字串查詢到了剪下 貼上到 右移 兩格?

曾燦公升 寫了2個,第乙個寫時候看見關鍵字了,就這樣寫了 第二個是看見你說字眼,才想起來可能有其他內容,加了個模糊匹配,你試試吧,我測試過沒問題 Option Explicit Sub cc Dim arr,i As Long,j As Long,y As Long y 0 arr Range a1...

工作多年,碰見特別喜歡問排序查詢演算法,資料結構實現的面試官是什麼感受

這是很正常的,基本資料結構和演算法的實現雖然已經整合到STL中作為C 的一部分,但我依然認為很有必要了解他們內部的實現,這是對資料結構最基本的理解,也會對記憶體的分配,優化,演算法的時間和空間複雜度更深入的理解。 王東嶽 既然你說到了map實現,我就隨便說說這玩意有啥用 我至少看過好幾個踩map這個...