會有怎樣的下面給出查詢的輸出,如果沒有符合條件的記錄被發現SQL查詢的結果,如果沒有記錄發現
select avg(salary) from employee where dept='sales'
則返回0或空的?
會有怎樣的下面給出查詢的輸出,如果沒有符合條件的記錄被發現SQL查詢的結果,如果沒有記錄發現
select avg(salary) from employee where dept='sales'
則返回0或空的?
好吧,我已經通過了文檔,它在那裏提到,如果沒有匹配的行,那麼它會給NULL。但是如果有匹配的行並且薪水列包含NULL值呢? 它會忽略NULL值並在這種情況下返回0? –
是的,我認爲它會忽略空值。 – purple
默認情況下,在MySQL和我敢肯定它是太MSSQL,所有聚合函數返回NULL,如果沒有數據,或者如果任何數據爲NULL,你不能丟失數據計算的聚合。
-1這是錯誤的。被忽略的行被忽略。如果找不到匹配的行,某些聚合函數(例如:COUNT())將返回0。 – NullUserException
這是非常非常非常錯誤的。 – JNK
對不起,我混淆了表達式和agregations ...如果你把NULLS放在例如SELECT 1 + NULL中,它將返回null。我很困惑:D –
看一看this。
它返回NULL
在SQL Server簡單的測試:
DECLARE @T TABLE (id int)
INSERT INTO @T
SELECT NULL
SELECT AVG(id) FROM @T
返回NULL
值得一試:) – dfb
它可能會因RDBMS(未指定)。嘗試一下,找出答案。 – David