關於 警告 聚合或其他 SET 操作消除了空值。

2021-09-11 21:49:16 字數 725 閱讀 6612

方法一:

create table tb 

( id int, 

num int 

)insert into tb select 1,10 

insert into tb select 1,20 

insert into tb select 2,80 

insert into tb select 2,null

select id,sum(num) 

from tb 

group by id

id                      

----------- ----------- 

1          30 

2          80

(所影響的行數為 2 行)

警告: 聚合或其它 set 操作消除了空值。

分析:聚合函式無法對null值進行運算,所以會忽略 

這個提示僅僅是警告,就是告訴使用者,null值被忽略了 

結果就是按照null為0來計算

如果用 

select id,sum(isnull(num,0)) 

from tb 

group by id

這樣的語句,在運算之前,isnull已經把null值轉換成0了, 

所以聚合函式運算就沒有問題

方法二:

增加sql語句

set ansi_warnings off

關於LINUX gconf警告

今天在qt下程式設計,發現下面的乙個錯誤 根據網上查詢資料發現是這麼d bus守護程序沒有正常開啟的問題 執行qtcreator時,終端使用的 su root進入root許可權,隨後直接執行了qtcreator程式 原以為這樣子qtcreator許可權和環境就足夠了,結果不然,讓我們看看下面關於su...

關於Xcode警告

大多數警告 warning 其實不一定影響專案功能,但是警告太多容易隱藏一些真正需要解決的問題,而且考慮有些朋友的強迫症,xcode的警告都是可以關閉的,出了直接的setting裡治標不治本的設定外,更應該根據編譯器的提示去真正解決它,這樣的過程對更了解編譯器也是有些幫助的。implementing...

VS中關於scanf警告

首先在vs中使用scanf會出現這樣的問題 用我蹩腳的英語翻一下 這個 scanf 函式或者變數 編譯器自己也分不清楚勢函式還是變數 可能是不安全的。考慮使用scanf s替換。讓這個描述失效的話,請使用 crt secure no warnings。scanf函式是標準c語言提供,scanf s不...