[Salesforce][Apex]SOQLでのLimitとOffsetの利用 | Salesforceで開発したり

Salesforceで開発したり

Salesforce.comに触れ始めてからもう7年
当時から比べたら相当な進化を遂げている。
出来る事が増えた分、やり方を調べなきゃいけないので、日常と共にメモで残そうというお話。

SalesforceのApex開発において、積年の夢であったLIMIT / OFFSET の機能が
 Spring'12にてSOQL上に実装されている。

使い方はノーマルなSQLと同様  
 Limit : 取得行の件数
 Offset : とばす行の件数


[SELECT
Id,Name,CustomField__c
FROM
CustomObject__c
WHERE 
CustomField__c =:var
ORDER BY Name LIMIT :limit_var OFFSET :offset_var]



*varは変数
*limit_varは数値
*offset_varも数値

こうすれば、検索結果行の中で
【offset_var+1行目からlimit_var件分のデータ】 という取り方ができる。
limit_varを50件 offset_varを100にしておけば、
101件目~150件目のデータを取得できるわけだ。 

ちなみに、取得できる最大OFFSET行数は2000件の様子。