LoginSignup
54
50

More than 5 years have passed since last update.

SOQLのチートシート

Last updated at Posted at 2018-03-04

SOQLのチートシート

SOQLでよく使うやつの覚書。
またSQLでは普通にできるけどSOQLでできないことも記載。

SOQL

全件表示

SELECT Id,Name,LastModifiedDate
FROM Account
ORDER BY LastModifiedDate desc

5件だけ表示(Limit)

SELECT Id,Name,LastModifiedDate
FROM Account
LIMIT 5 

5件だけ表示(Offset)

SELECT Id,Name,LastModifiedDate
FROM Account
OFFSET  5 

完全一致検索(=)

SELECT Id,Name,LastModifiedDate
FROM Account
WHERE name = '田中太郎' Order by Name

あいまい検索(like)

SELECT Id,Name,LastModifiedDate
FROM Account
WHERE name like '%太郎%' Order by Name

複数条件の検索(and)

SELECT Id,Name,NumberOfEmployees
FROM Account
WHERE name like '%太郎%' and NumberOfEmployees > 10 Order by Name

同じ項目での複数条件検索(in)

SELECT Id,Name,NumberOfEmployees
FROM Account
WHERE name in ('田中太郎','鈴木花子')

日付検索(<,>)

SELECT Id,Name,CreatedDate 
FROM Account
WHERE CreatedDate >= 2005-10-08T00:00:00Z AND CreatedDate <= 2018-02-08T00:00:00Z
  • TODAY,THIS_WEEK,NEXT_MONTHの予約語もある

件数カウント(COUNT)

SELECT COUNT(Id)
FROM Account

重複除外の件数カウント(COUNT_DISTINCT)

SELECT COUNT_DISTINCT(Name)
FROM Account

最小・最大(MIN、MAX)

SELECT MIN(NumberOfEmployees)
FROM Account
---
SELECT MAX(NumberOfEmployees)
FROM Account

SalesforceのId検索

SELECT Id,Name,LastModifiedDate
FROM Account
WHERE Id = '0017F00000Uxxxx' 
  • 結果が17桁のIdで帰ってくる

SQLではできるけど、SOQLでできないこと

アスタリスク

SELECT *
FROM Account
ORDER BY Name

Order Byの列数指定

SELECT Id,Name,LastModifiedDate
FROM Account
ORDER BY 1 desc

対応方法:項目を指定してあげる

テーブルに別名使えるが、項目には使えない

SELECT a.Id , a.Name as nm
FROM Account As a
Order by LastModifiedDate desc

Between検索

SELECT Id,Name,CreatedDate 
FROM Account
WHERE CreatedDate between 2005-10-08T00:00:00Z AND  2018-02-08T00:00:00Z

対応方法:<,>で代用する

空白検索(IS NULL)

SELECT Id,Name,LastModifiedDate
FROM Account
WHERE NumberOfEmployees IS NULL 

対応方法:以下のように指定する

SELECT Id,Name,NumberOfEmployees
FROM Account
WHERE NumberOfEmployees = null

UpdateとDelete文

対応方法:Apexを使う

54
50
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
54
50