とある記事が消されそうなのでメモ( ;∀;)
SOQLとは
SOQL = Salesforce Object Query Language
→Salesforceデータから特定の情報を検索できる
:オブジェクトから特定のレコードを取得ができる。
メモ:SELECT構文を使う。
(SELECT)構文と句
基本構造
SELECT Field Name
FROM Object Name(REQUIRED)
WHERE Expression
GROUP BY Field Name
LIMIT ROW LIM(行数)
※WHERE/GROUPBY/LIMIT は省略可能
使用例
①子OBJから親OBJの項目を参照する
標準項目→ Field Name.親OBJのFieldName
カスOBJ→ Field Name __r.親OBJのField Name**
取引先責任者→取引先 の参照
SELECT Name(取引先責任者の名前項目),
Account.Name(取引先の名前項目)
from Contact(最初に宣言した項目のOBJ名)
商談から取引先の参照
SELECT Name(取引先責任者の名前項目),
Account.Name(取引先の名前項目)
from Opportunity(最初に宣言した項目のOBJ名)
②親OBJから子OBJへの参照
サブクエリ部分を()で括り、リレーションを指定する。
取引先から取引先責任者への参照
SELECT Name(取引先の項目名),
(
SELECT FirstName(取引先責任者の項目名)
FROM Contacts(取引先責任者のOBJ名※下記引用参照)
)
FROM Account 最初に宣言した項目のOBJ名)
サブクエリ内の FROM 句の初期のメンバーが外部クエリ FROM 句の初期のメンバーの場合、サブクエリ (括弧で囲まれた) を使用して、これらのリレーションを指定してください。標準オブジェクトのサブクエリでは、オブジェクトの複数形の名前が各オブジェクトのリレーション名であるため、複数形の名前を指定する必要があります。
引用元
条件文(Expression)の構文
WHERE句
↪項目を指定することで、検索条件のように使用できる
①完全一致 (=)
②一致しない (!=)
③あいまい (LIKE)
④どれかに等しい (IN)
⑤どれにも一致しない (NOT IN)
①完全一致
✓取引先の(カスタム)項目が「1」の取引先の取引先名と(カスタム)項目値を取得する
SELECT Name,test001__c
FROM Account
WHERE test001__c = '1'
「=」を使用する
②一致しない
✓取引先の(カスタム)項目が「NULL値でない」取引先の取引先名と(カスタム)項目値を取得する
SELECT Name,test001__c
FROM Account
WHERE test001__c != NULL
「!=」を使用する
③あいまい
✓取引先の取引先名が「株式会社××」の取引先名を取得する
SELECT Name
FROM Account
WHERE Name LIKE '株式会社%'
・「LIKE」を使用する
・LIKEでは「%」「_」がワイルドカードが使用できる
・%→0個以上の文字/_ → 1文字のみ
※ロングテキストエリアは使用不可
④どれかに等しい
✓取引先の(カスタム)項目が「1」または「2」の取引先の取引先名と(カスタム)項目値を取得する
SELECT Name,test001__c
FROM Account
WHERE test001__c IN ('1', '2')
IN ('文字列','文字列'...) で括る。
⑤どれにも一致しない
✓取引先の(カスタム)項目が「1」または「2」または「NULL」でないの取引先の取引先名と(カスタム)項目値を取得する
SELECT Name,test001__c
FROM Account
WHERE test001__c NOT IN ('1', '2',NULL)
・NOT IN ('文字列','文字列'...) で括る。
・NULL値はシングルコーテーション不要
不等号について
・数値や日付の検索で使用
・範囲での検索は 「AND」、「OR」、「NOT」 が使用可能
・日付項目、日付/時間項目の書き方は 「-」
・日本時間に合わせる場合は「+0900」または9時間マイナスした値(Zulu)を使用
✓取引先の最終更新日が2025/01/01~2025/01/31までの取引先の取引先名と最終更新日を取得する
SELECT Name, LastModifiedDate
FROM Account
WHERE LastModifiedDate >= 2025-01-01T00:00:00+0900
AND LastModifiedDate <= 2025-01-31T00:00:00+0900
相対日付(上記の日付に付随して)
相対日付も使用できる。
(yesterday,Today,Last_30_days etc...)
✓商談の作成日が今日の商談の商談名
と作成日を取得
SELECT Name, CreatedDate
FROM Opportunity
WHERE CreatedDate = today
並び替えと計算などはまた別途メモに~~( ゚Д゚)