第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

COUNT(*)總是返回結(jié)果嗎?

COUNT(*)總是返回結(jié)果嗎?

滄海一幻覺 2019-08-13 16:54:43
COUNT(*)總是返回結(jié)果嗎?如果我運行查詢,例如:SELECT COUNT(*) as num FROM table WHERE x = 'y'它是否總是返回結(jié)果,即使查詢與任何記錄都不匹配?或者我是否需要驗證并確保返回一行作為結(jié)果?
查看完整描述

3 回答

?
慕絲7291255

TA貢獻1859條經(jīng)驗 獲得超6個贊

是的,因為它是一個聚合并返回零。除非您添加GROUP BY,否則沒有結(jié)果,因為沒有組...

除非您添加GROUP BY然后沒有行,否則MAX / SUM等將返回NULL。只有COUNT會返回一個沒有結(jié)果的數(shù)字

編輯,有點晚:SUM會像MAX一樣返回NULL


查看完整回答
反對 回復(fù) 2019-08-13
?
元芳怎么了

TA貢獻1798條經(jīng)驗 獲得超7個贊

是的,“count”函數(shù)本身返回值始終是非null整數(shù),無例外。

話雖如此,您可能對查詢的返回值更感興趣,這實際上是一個結(jié)果集。如果是這種情況,那么您只需要考慮您的查詢是否包含“group by”子句。

一個非分組查詢中包含聚合函數(shù)

select count(*), sum(*), max(*), min(*) from table

生成具有單個記錄的結(jié)果集包含聚合函數(shù)的返回值。在這種情況下,結(jié)果集將始終只有一條記錄,其中的列包含您包含的任何聚合函數(shù)的返回值。在此單獨記錄中,count的返回值將始終為非null整數(shù),而其他聚合函數(shù)(如min,max和sum)的返回值可能為null。在上面的示例中,您返回的記錄可能是“零,null,null,null”,但永遠不會是“null,null,null,null”,因為count永遠不會返回null。因此,如果您只調(diào)用“count”,那么返回的那一條記錄中的那一列將始終包含count的非null返回值; 因此,您可以放心,計數(shù)查詢的標量返回值將始終為非空整數(shù)。

另一方面,具有聚合函數(shù)的分組查詢

select count(*), sum(*), max(*), min(*) from table group by column

生成具有零個或多個記錄的結(jié)果集,其中每個記錄包含所標識的每個組的聚合函數(shù)的返回值。在這種情況下,如果沒有標識組,則沒有用于運行聚合函數(shù)的組,函數(shù)永遠不會運行,并且“查詢返回值”將是一個空集,根本沒有記錄。

在沒有記錄的表上測試它以查看結(jié)果:

create table #t (c int);select COUNT(c), MIN(c), MAX(c), SUM(c) from #t; --returns one record {0, null, null, null}select COUNT(c), MIN(c), MAX(c), SUM(c) from #t group by c; --returns no recordsdrop table #t;

因此,無論您是調(diào)用count,min,max還是sum,重要的是不僅要了解各個聚合函數(shù)的返回值,還要了解查詢本身的“返回值”以及結(jié)果集包含的內(nèi)容。


查看完整回答
反對 回復(fù) 2019-08-13
?
弒天下

TA貢獻1818條經(jīng)驗 獲得超8個贊

聚合函數(shù)Count()始終返回值


查看完整回答
反對 回復(fù) 2019-08-13
  • 3 回答
  • 0 關(guān)注
  • 1689 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號