比方說,你跑,看起來像這樣的SOQL彙總查詢:如何解析沒有值的SOQL AggregateResult列?
select OwnerId, sum(ExpectedRevenue)val from Opportunity GROUP BY ROLLUP(OwnerId)
無論出於何種原因,也有與ExpectedRevenue領域沒有機會填充。
你得到一個表,看起來像這樣:
VAL ___ | OWNERID
|Id1 |Id2 |Id3
4/4的記錄。
(旁註:你把表格數據,沒有它尋找可怕怎麼辦?)
,請注意該「VAL」列均爲空,最後OWNERID列也爲空。
有4行,因爲SOQL在彙總時也返回「總計」行。
在循環通過返回的AggregateResult []時,代碼在如下所示的一行中爆炸:AggregateResult [0] .get('val');與「System.NullPointerException:嘗試去引用一個空對象」
但是,如果只有其中一個用戶有一些數據,那麼整個事情的作品。所以我猜測,如果沒有行在特定列中有任何數據,那麼該列根本就不存在,並且調用來檢索它就會爆炸。
所以我的問題是你如何確定列是否存在以避免空引用錯誤?