How to write SOQL queries


After going through the basics of the Salesforce SOQL queries now let us check some more examples of the same and the steps to write them in a more detailed manner.

Steps to write SOQL queries

  1. Analyse the need: Firstly, we have to analyze the need in the business and proceed with the next steps.
  2. Fragment the logic: Now, we have to fragment the business logic.
  3. Incremental queries: Now, according to the fragmented logic we have to prepare for the queries.
  4. Get the functions required: Get the appropriate functions to write the query efficiently.

Write SOQL Queries

Now, let’s write a basic SOQL query and then look at queries with different SOQL queries to understand better.


SELECT Name, Phone FROM Account 
WHERE Name = “Amazon”



Here, the query is simple. We are just trying to retrieve the “Name” and “Phone” fields from the “Account” object with a condition of the only name as “Amazon”.

Queries in SOQL

  • The barebones query
SELECT Name, Phone, Companyage__C 
FROM Account


This is a basic query where two standard fields and one custom field are retrieved from the “Account” object.

  • The WHERE clause
SELECT Name, Phone FROM Account 
WHERE name = “Amazon”


This query is the same as the one mentioned in the above example. Now, by using a “ WHERE” clause retrieve only the conditions that satisfies the conditions that we have written after the clause.


  • Using OPERATORs
SELECT Name, Phone FROM Contact 
WHERE Address != null


Here, we get the “Name” and “Phone” fields from the “Contact” object but only whose addresses are not null. Which is mentioned in the condition after “WHERE” clause.

  • Using AND and OR in the WHERE clause
SELECT Name, Phone, Site FROM Account 
WHERE AccountNumber != null AND   Status =  True


Here, we select to get the “Name”, “Phone” and “Site” fields from the “Account” object based on two conditions. One is the “Account Number” field should not be null and the “Status” field should be checked.


  • Using TEXT, PICKLIST, or ID values
SELECT Name, Phone 
FROM Leave 
WHERE LeaveNo__c > 3 
AND LeaveType = “Sick Leave” 
AND RecordId !=  “0015g00000MvGguAAF”


Here, we select “Name” and “Phone” fields on specific conditions on Text, Picklist, and Record Id.

  • Using Numbers
SELECT Name, Phone FROM Account 
WHERE Phone = null


Here, we select “Name” and “Phone” fields from “Account” object on the condition that the phone’s field should not be null.


  • Using Date
SELECT Name__c, Address__c FROM Student__c 
WHERE DateOfJoin__c = TODAY


Here, we need the names and addresses of the students who joined today and we use this query.

  • Fuzzy Matching
SELECT Name, Phone FROM Contact 
WHERE Phone LIKE “%(200)%”


Now, the query returns the records whose phone number matches approximately.

  • Sorting the results
SELECT Name FROM Account 


Now, you get all the names of the Account present in the org in an ascending order.


  • Limiting your results
SELECT Name, Phone 
FROM Account LIMIT 10


Here, you simply get “Name” and “Phone” fields from “Account” object. But as you observe you get only 10 records.

  • Putting it all together
SELECT Name, Phone

FROM Contact

WHERE Address != null

AND (Birthdate = TODAY OR Age__c >30)






  • Barry Allen

    A Full Stack Developer with 10+ years of experience in different domain including SAP, Blockchain, AI and Web Development.

    View all posts


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.