SOQL入門

Salesforceでデータを自在に検索・抽出したいなら、SOQL(Salesforce Object Query Language)の基本は必須です。本記事では、SQLとの違いや書き方の基本から、クエリエディターでの実行方法までを解説します。


目次

🪐 クエリエディターとSOQLで、目的のレコードをクエリしよう!

Salesforceでは、データを柔軟に取得するために「SOQL(Salesforce Object Query Language)」という独自の言語を使用します。

「SQLと何が違うの?」という疑問はよくあるものですが、SOQLは“SELECT文のみを使ってオブジェクト(テーブル)からレコードを取得する”ことに特化した軽量な言語です。

1️⃣ STEP 1:クエリエディターを開くには?

まずはSalesforceの開発者コンソール(Developer Console)を開きましょう。

  1. Salesforce画面右上の歯車アイコン(⚙)をクリック
  2. 開発者コンソール」を選択(新しいウィンドウが開きます)
  3. 下部のタブから「Query Editor」を選択

これで、SOQLクエリを入力できる専用のエディター画面が開きます。

2️⃣ STEP 2:SOQLの基本構文を理解しよう

SOQLは「どのオブジェクトから」「どの項目を」「どんな条件で」取得するかを明確に指定します。

SELECT 項目名1, 項目名2 FROM オブジェクト名 WHERE 条件
SELECT Name, Industry FROM Account WHERE Industry = 'Publishing'

このクエリは、Account(取引先)オブジェクトから、Industryが「Publishing」のレコードを取り出し、NameIndustryの項目だけを表示するという意味です。

3️⃣ STEP 3:よく使うSOQLの構文いろいろ

▶ WHERE句で条件を指定する

SELECT Name FROM Contact WHERE LastName = 'Yamada'

姓が「Yamada」のコンタクトを検索。

▶ 複数条件を組み合わせる(AND / OR)

SELECT Name FROM Account WHERE Industry = 'Retail' AND BillingCountry = 'Japan'

▶ 条件を含めたいとき(LIKE)

SELECT Name FROM Account WHERE Name LIKE 'ABC%'

「ABC」で始まる名前の取引先を検索。

▶ 特定のレコードIDで絞り込む

SELECT Name FROM Contact WHERE AccountId = '001xxxxxxxxxxxx'

▶ 複数の値を含める(IN)

SELECT Name FROM Contact WHERE Department IN ('Sales', 'Marketing')

▶ 空の値を調べる(NULL / NOT NULL)

SELECT Name FROM Lead WHERE Email != NULL

4️⃣ STEP 4:実行して結果を確認しよう

クエリを入力したら、画面左下の「Execute」ボタンをクリック。
クエリの結果は、「Query Results」エリアにテーブル形式で表示されます。

5️⃣ STEP 5:LIMITで取得件数を制限する

SOQLでは大量データを扱う場合に備えて、LIMIT句で取得件数を制限できます。

SELECT Name FROM Account LIMIT 10

6️⃣ STEP 6:ORDER BYで並び順を指定する

SELECT Name FROM Account ORDER BY CreatedDate DESC
  • ASC:昇順(古い→新しい)
  • DESC:降順(新しい→古い)

📌 SOQLを書くときのコツ・ベストプラクティス

  • Salesforceのオブジェクト構造(スキーマ)を理解しておくこと
    • オブジェクト名や項目名を確認するには「オブジェクトマネージャ」を使うと便利です
  • カスタム項目の項目名には__cがつく
    • 例:Custom_Field__c
  • 項目名は「項目の表示ラベル」ではなく、項目名(API名)を使う
    • ❌ 項目の表示ラベル:「取引先名」 ⭕ 項目名(API名):Name

🔍 活用例:営業部からのこんな依頼に応えるには?

依頼:「先月登録された、業種がITの取引先だけ教えてほしい」

SOQLクエリ:

SELECT Name, Industry, CreatedDate 
FROM Account 
WHERE Industry = 'Technology' AND CreatedDate = LAST_MONTH

📌 POINT:

  • LAST_MONTH などの相対日付リテラルも使える
  • データ抽出依頼を受けたときに素早く対応できる

🌟 ノックスの格言

「クエリとは、管理者の目であり、耳である。“何が起きているか”を知るには、自ら問いかけるのです」
(銀河歴8221年 ネクタリス・オーヴァ大学 情報魔法学部『情報観測論』より)

(英語訳:”A query is the admin’s eyes and ears. To understand what is happening, one must ask.”)
(原語訳:”Queran silnath re’ven adminis. Valdra thasol, theran ka valun.”)

💡 さやかの学びメモ

SOQLはSalesforce専用の検索言語!

  • 「SELECT ○○ FROM △△ WHERE □□」で、見たいレコードだけを抽出できる
  • SELECT * は使えない。項目は明示的に書く!

クエリエディターの使い方も覚えた!

  • 設定⚙ → 開発者コンソール → Query Editor タブ
  • クエリを書いて「Execute」で実行!

では、また次回の 異星人Salesforce講座 でお会いしましょう!👽✨

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次