1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Salesforce】SOQLについてのメモ①

Last updated at Posted at 2025-01-28

とある記事が消されそうなのでメモ( ;∀;)

SOQLとは

SOQL = Salesforce Object Query Language
→Salesforceデータから特定の情報を検索できる
:オブジェクトから特定のレコードを取得ができる。

メモ:SELECT構文を使う。

SOQL DOC

(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名

image.png

商談から取引先の参照
記述例
SELECT Name(取引先責任者の名前項目), 
Account.Name取引先の名前項目 
from Opportunity最初に宣言した項目のOBJ名

image.png

②親OBJから子OBJへの参照

サブクエリ部分を()で括り、リレーションを指定する。

取引先から取引先責任者への参照
記述例
SELECT Name(取引先の項目名),
  (
    SELECT FirstName取引先責任者の項目名
    FROM Contacts取引先責任者のOBJ名下記引用参照
  )
FROM Account 最初に宣言した項目のOBJ名

サブクエリ内の FROM 句の初期のメンバーが外部クエリ FROM 句の初期のメンバーの場合、サブクエリ (括弧で囲まれた) を使用して、これらのリレーションを指定してください。標準オブジェクトのサブクエリでは、オブジェクトの複数形の名前が各オブジェクトのリレーション名であるため、複数形の名前を指定する必要があります。
引用元

image.png

条件文(Expression)の構文

WHERE句

↪項目を指定することで、検索条件のように使用できる

①完全一致 (=)
②一致しない (!=)
③あいまい (LIKE)
④どれかに等しい (IN)
⑤どれにも一致しない (NOT IN)

①完全一致
✓取引先の(カスタム)項目が「1」の取引先の取引先名と(カスタム)項目値を取得する

記述例
SELECT Name,test001__c 
FROM Account 
WHERE test001__c = '1'

「=」を使用する

image.png

②一致しない
✓取引先の(カスタム)項目が「NULL値でない」取引先の取引先名と(カスタム)項目値を取得する

記述例
SELECT Name,test001__c 
FROM Account 
WHERE test001__c != NULL

「!=」を使用する

image.png

③あいまい
✓取引先の取引先名が「株式会社××」の取引先名を取得する

記述例
SELECT Name 
FROM Account 
WHERE Name LIKE '株式会社%'

・「LIKE」を使用する
・LIKEでは「%」「_」がワイルドカードが使用できる
・%→0個以上の文字/_ → 1文字のみ
※ロングテキストエリアは使用不可

image.png

④どれかに等しい
✓取引先の(カスタム)項目が「1」または「2」の取引先の取引先名と(カスタム)項目値を取得する

記述例
SELECT Name,test001__c 
FROM Account 
WHERE test001__c IN ('1', '2')

IN ('文字列','文字列'...) で括る。

image.png

⑤どれにも一致しない
✓取引先の(カスタム)項目が「1」または「2」または「NULL」でないの取引先の取引先名と(カスタム)項目値を取得する

記述例
SELECT Name,test001__c 
FROM Account 
WHERE test001__c NOT IN ('1', '2',NULL)

・NOT IN ('文字列','文字列'...) で括る。
・NULL値はシングルコーテーション不要

image.png

比較演算子

不等号について

・数値や日付の検索で使用
・範囲での検索は 「AND」、「OR」、「NOT」 が使用可能
・日付項目、日付/時間項目の書き方は 「-」
・日本時間に合わせる場合は「+0900」または9時間マイナスした値(Zulu)を使用

✓取引先の最終更新日が2025/01/01~2025/01/31までの取引先の取引先名と最終更新日を取得する

↓上記の条件で作成したレポート↓
image.png

記述例
SELECT Name, LastModifiedDate 
FROM Account 
WHERE LastModifiedDate >= 2025-01-01T00:00:00+0900 
AND LastModifiedDate <= 2025-01-31T00:00:00+0900

image.png

相対日付(上記の日付に付随して)

相対日付も使用できる。
(yesterday,Today,Last_30_days etc...)

✓商談の作成日が今日の商談の商談名
と作成日を取得

記述例
SELECT Name, CreatedDate 
FROM Opportunity 
WHERE CreatedDate = today 

image.png

日付リテラル値他


並び替えと計算などはまた別途メモに~~( ゚Д゚)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?