如何解决如何编写SOQL以区分Level_1__c,Level_2__c和Level_3__c的组合
我想知道是否有可能像我们在sql中那样编写SOQL 像Level_1__c,Level_2__c和Level_3__c的区别
当前的SOQL是
select Case__c,Level_1__c,Level_2__c,Level_3__c FROM ERT_Case_Type__c
如何重写以包括Level_1__c,Level_2__c和Level_3__c的区别
谢谢! 卡罗琳
解决方法
我认为对于您的用例,您将需要Apex。类似于以下内容:
Map<String,Set<String>> distinctLevels = new Map<String,Set<String>>{
'Level_1__c' => new Set<String>(),'Level_2__c' => new Set<String>(),'Level_3__c' => new Set<String>()
};
Set<String> levelApiNames = new Set<String>{'Level_1__c','Level_2__c','Level_3__c'};
for(ERT_Case_Type__c caseType : [SELECT Case__c,Level_1__c,Level_2__c,Level_3__c FROM ERT_Case_Type__c]){
for(String level : levelApiNames){
distinctLevels.get(level).add(caseType.get(level));
}
}
for(String level : levelApiNames){
System.debug('Number of distinct ' + level + ' values: ' + String.valueOf(distinctLevels.get(level).size());
//System.debug('List of distinct ' + level + ' values: ' + distinctLevels.get(level).toString());
//System.debug(distinctLevels.get(level).size()); //as integer
}
- 遍历查询结果
- 遍历您要跟踪的每个字段API名称
- 将每个字段的值添加到地图内的集合中。该集合将只有唯一的值
- 使用每个字段API名称的映射值进行操作
这未经测试,但是高级大纲应该对您有用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。