我想根据选项列表的字段值有条件地过滤SQL查询。我该怎么做呢?如果选项列表字段值为'任何类型'那么我想不过滤查询。
if (picklistValue == 'Any Type') //dont filter
SELECT Object__c.Name
FROM Object__c
WHERE Object__c.Type__c = :picklistValue
答案 0 :(得分:0)
在这些情况下,您需要根据条件动态构建SOQL
。在您的情况下,动态SOQL
可能是这样的:
List<Object__c > objList = new List<Object__c>();
String query = 'SELECT Object__c.Name FROM Object__c ';
if(picklistValue == 'Any Type') {// don't filter
// your code..
} else {
// apply filter
query = query + ' WHERE Object__c.Type__c = \'' + picklistValue + '\';
}
objList = Database.query(query);
您可以参考dynamic SOQL documentation了解更多详情。