Activity › Forums › Salesforce® Discussions › How to use IN clause in Dynamic query?
Tagged: Dynamic Query, IN clause, Salesforce Query
-
How to use IN clause in Dynamic query?
Posted by shariq on July 21, 2017 at 7:49 AMCan we use IN clause in dynamic query? please give the example.
Parul replied 7 years, 7 months ago 4 Members · 3 Replies -
3 Replies
-
MAP<ID,Opportunity> os = new MAP<Id,Opportunity>([Select ID from Opportunity]);
SET<ID> keys = os.keyset();
String s = ‘SELECT RecordTypeId, COUNT(Id) os FROM Opportunity Where Id IN ‘;
s+=’:keys GROUP BY RecordTypeId’;
AggregateResult[] ars = Database.query(s);
System.debug(ars[0].get(‘RecordTypeId’)); - [adinserter block='9']
-
It is very simple assume you have a Set<String> or Set<Id> named “ids”
Set ids = new Set();
String dynamicQuery = “SELECT ID FROM SomeObject__c WHERE SomeID IN :ids”;
Database.query(dynamicQuery);
You don’t have to do anything when complier will compile the code it will find set of ids and put it into your query
-
Hi
list<string> setAccIds = new list<string>();
setAccIds .addAll(AcctoCon_Sync.keySet());AccQuery = ‘SELECT Id ,AccArticleId , ‘ + title + ‘,’ + answer + ‘ FROM ‘ + articleType;
AccQuery += ‘ WHERE PublishStatus = \’Online\’ AND language = \’en_US\’ AND AccQuery IN :’ + setAccIds ;Thanks
Log In to reply.