微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何编写SOQL以区分Level_1__c,Level_2__c和Level_3__c的组合

如何解决如何编写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
}
  1. 遍历查询结果
  2. 遍历您要跟踪的每个字段API名称
  3. 将每个字段的值添加到地图内的集合中。该集合将只有唯一的值
  4. 使用每个字段API名称的映射值进行操作

这未经测试,但是高级大纲应该对您有用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。