Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Jagdeep-Sharma/soql-query-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

soql-query-builder

SOQL Query Builder lets you write your long SOQL queries in more organized and readable fashion. It also supports "*" and automatically queries all the fields for a given object.

How to use?

1. Quering all the fields

String soql = new QueryBuilder()
                  .sel('*')
                  .frm('Contact')
                  .soql();
System.debug(soql);

Note: This is a costly operations and could slowdown your application. Please make sure that the queried object doesn't have any Rich-Text or Long-Text area fields.

2. Selecting specific fields

String soql = new QueryBuilder()
                  .sel('FirstName')
                  .sel(new Set<String>{ 'LastName', 'Email' })
                  .sel(new List<String>{ 'Phone', 'Department' })
                  .frm('Contact')
                  .soql();
System.debug(soql);

Outputs to

SELECT FirstName,LastName,Email,Phone,Department FROM Contact

3. Filtering records

String soql = new QueryBuilder()
                  .sel('FirstName')
                  .sel('LastName')
                  .frm('Contact')
                  .whr('Department != null')
                  .whr('Level__c = \'Primary\'')
                  .soql();
System.debug(soql);

Outputs to

SELECT FirstName,LastName FROM Contact WHERE Department != null AND Level__c = 'Primary'

4. Advanced Filtering

String soql = new QueryBuilder()
                  .sel('FirstName')
                  .sel('LastName')
                  .frm('Contact')
                  .whr('Department != null', 1)
                  .whr('Department = \'Internal Operations\'', 2)
                  .whr('Level__c != null', 3)
                  .whr('Level__c = \'Primary\'', 4)
                  .advwhr('(1 AND 2) OR (3 AND 4)')
                  .soql();
System.debug(soql);

Outputs to

SELECT FirstName,LastName FROM Contact WHERE (Department != null AND Department = 'Internal Operations') OR (Level__c != null AND Level__c = 'Primary')

5. Subqueries / Nested queries

String soql = new QueryBuilder()
                  .sel('Id')
                  .sel('Name')
                  .sub(new QueryBuilder()
                           .sel('FirstName')
                           .sel('LastName')
                           .frm('Contacts')
                           .lmt(5))
                  .frm('Account')
                  .soql();
System.debug(soql);

Outputs to

SELECT Id,Name,(SELECT FirstName,LastName FROM Contacts LIMIT 5) FROM Account

6. Sorting / Limiting records

String soql = new QueryBuilder()
                  .sel('FirstName')
                  .sel('LastName')
                  .frm('Contact')
                  .sort('FirstName')
                  .sort('LastName', 'DESC')
                  .lmt(5)
                  .soql();
System.debug(soql);

Outputs to

SELECT FirstName,LastName FROM Contact ORDER BY FirstName ASC,LastName DESC LIMIT 5

Authors

  • Jagdeep Sharma

About

Build your soql queries

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.