有条件地根据字段值过滤SQL查询

时间:2017-04-30 17:53:57

标签: apex soql

我想根据选项列表的字段值有条件地过滤SQL查询。我该怎么做呢?如果选项列表字段值为'任何类型'那么我想不过滤查询。

if (picklistValue == 'Any Type') //dont filter     

SELECT Object__c.Name
FROM Object__c
WHERE Object__c.Type__c = :picklistValue

1 个答案:

答案 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了解更多详情。