Hi All,
It has been a long time, there is no post in salesforce4u, I am apologizing for being so late, now I am assuring you, there will be at least one post in each month.
We will start with the simple one, Last week I faced one query exception "expecting left parentheses, found ':'", Let me share how did I resolve that issue.
The requirement was just filtering records using multi-select picklist values. What exactly will come to a developer mind ?? Use the following operator to accomplish.
1. LIKE - It will be used for normal string/text field filter and it's a partial match.
2. CONTAINS - It is not being used at all in SOQL
3. INCLUDES - This is the best one to use for this requirement.
How to use INCLUDES operator in the SOQL query.
Below is the code snippet to filter Account based on value ( 'Agriculture','HR' ).
Static Querry
List<Account> accList = [Select id,name,LOB__c from Account where LOB__c INCLUDES ('Agriculture','HR') ];
System.debug('accList ---'+accList[0]);
Dynamic Query
set<String> lobSet = new Set<String>{'Agriculture','HR'};
System.debug('lobSet ---'+lobSet );
String queryFilter = '';
For(String str :lobSet ){
queryFilter += queryFilter == '' ? '(\''+str+'\'' : ','+ '\''+str+'\'';
}
queryFilter += ')';
System.debug('queryFilter ---'+queryFilter );
String sQuery = 'Select id,name,LOB__c from Account where LOB__c INCLUDES '+queryFilter;
System.debug('sQuery ---'+sQuery );
List<Account> accListDynamicQueryResults = Database.query(sQuery);
System.debug('accListDynamicQueryResults ---'+accListDynamicQueryResults );
For more info related to Includes operator
https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_querying_multiselect_picklists.htm
Please let me know if it is useful or not by adding comments below.
It has been a long time, there is no post in salesforce4u, I am apologizing for being so late, now I am assuring you, there will be at least one post in each month.
We will start with the simple one, Last week I faced one query exception "expecting left parentheses, found ':'", Let me share how did I resolve that issue.
The requirement was just filtering records using multi-select picklist values. What exactly will come to a developer mind ?? Use the following operator to accomplish.
1. LIKE - It will be used for normal string/text field filter and it's a partial match.
2. CONTAINS - It is not being used at all in SOQL
3. INCLUDES - This is the best one to use for this requirement.
How to use INCLUDES operator in the SOQL query.
Below is the code snippet to filter Account based on value ( 'Agriculture','HR' ).
Static Querry
List<Account> accList = [Select id,name,LOB__c from Account where LOB__c INCLUDES ('Agriculture','HR') ];
System.debug('accList ---'+accList[0]);
Dynamic Query
set<String> lobSet = new Set<String>{'Agriculture','HR'};
System.debug('lobSet ---'+lobSet );
String queryFilter = '';
For(String str :lobSet ){
queryFilter += queryFilter == '' ? '(\''+str+'\'' : ','+ '\''+str+'\'';
}
queryFilter += ')';
System.debug('queryFilter ---'+queryFilter );
String sQuery = 'Select id,name,LOB__c from Account where LOB__c INCLUDES '+queryFilter;
System.debug('sQuery ---'+sQuery );
List<Account> accListDynamicQueryResults = Database.query(sQuery);
System.debug('accListDynamicQueryResults ---'+accListDynamicQueryResults );
For more info related to Includes operator
https://developer.salesforce.com/docs/atlas.en-us.soql_sosl.meta/soql_sosl/sforce_api_calls_soql_querying_multiselect_picklists.htm
Please let me know if it is useful or not by adding comments below.
No comments:
Post a Comment