使用 聚合函式(aggregate function)時,SQL語句的返回值的注意事項
假設有如下一條SQL語句
SELECT
AVG(xuo.`attach_succ_rate`) AS `attach_succ_rate`
FROM
`xdr_user_oriented` AS `xuo`
WHERE
xuo.`id` < -1
其中 xuo.`id` < -1 這個條件,正常情況下,肯定是不會滿足的(沒有哪個資料庫的 id 是比 0 小的)。
所以,我就理所當然地認為,這條SQL語句是不會有返回值的。
但事實卻狠狠的打了我的臉:
從 work bench 的控制檯日誌來看,這條SQL語句是有返回值的,返回的是一條attach_succ_rate欄位的值為 NULL 的記錄。
也正是因為這樣,導致了今天專案中(使用的是 iBatis ORM 框架),丟擲了一個 NPE。查詢了半天,才定位是這個原因。
所以,在這裡備註一下,以免日後再犯同樣的錯。
PS: 只要SQL語句中使用了 聚合函式 (avg()、sum()、max()。。。等) 的,都會出現這種情況。
但是我未在哪份正式的DB文件中找到與此有關的說明,若有誰知道的話,還請留個連結給我,謝謝:)
相關文章
- SQL 語句的注意事項SQL
- sql語句之分組,聚合函式SQL函式
- setbuf函式使用注意事項函式
- 使用find_in_set()函式的注意事項函式
- 函式注意事項函式
- 使用箭頭函式的幾個注意事項函式
- 關於COMMIT和ROLLBACK語句的使用注意事項MIT
- MySQL常用語句及注意事項MySql
- fork 和 vfork 使用的注意事項和 system() 函式的替代函式
- 在T-SQL中使用臨時表的注意事項SQL
- 探索MySQL高階語句(數學函式、聚合函式、字串函式、日期時間函式)MySql函式字串
- Power Apps SortByColumns 函式使用注意事項APP函式
- removeChild使用時注意事項REM
- 空函式有參函式呼叫引數的注意事項Swift 1.1語言函式Swift
- ES6中箭頭函式使用的注意事項函式
- mybatis中使用in查詢時的注意事項MyBatis
- webbrowser控制元件使用時的注意事項Web控制元件
- Ignite自定義函式注意事項函式
- SQL語句中聚合函式忽略NULL值的總結SQL函式Null
- SQL Server SQL語句中的函式呼叫與Oracle SQL語句函式呼叫一個有趣的差別SQLServer函式Oracle
- Oracle使用*的注意事項Oracle
- Angular 14 inject 函式使用過程中的一些注意事項Angular函式
- MySQL使用Amoeba作為Proxy時的注意事項MySql
- Oracle臨時表使用注意事項Oracle
- [Oracle]高效的SQL語句之分析函式(三)OracleSQL函式
- Oracle vs PostgreSQL,研發注意事項(13) - UPDATE語句OracleSQL
- C語言中函式的返回值C語言函式
- 關於function建構函式特別注意的Function函式
- Oracle vs PostgreSQL,研發注意事項(2)-DDL語句與事務OracleSQL
- PL/SQL 06 函式 functionSQL函式Function
- SQL 自定義函式FUNCTIONSQL函式Function
- 使用regulator_get時的一個小注意事項
- 多執行緒CreateThread函式的用法及注意事項執行緒thread函式
- SQL TUNNING 注意事項SQL
- [Oracle]高效的SQL語句之分析函式(一)(二)OracleSQL函式
- 語音識別中使用Cool Edit Pro的使用注意事項
- Sql Server系列:聚合函式SQLServer函式
- Go Quiz: 從Go面試題看函式命名返回值的注意事項(超過80%的人都回答錯了)GoUI面試題函式