Consulta condicional de Apex
Me gustaría devolver una consulta SOQL basada en una sentencia condicional.
Mi código se ve así:
string FullQuery = '';
if(selectedRegion == 'All'){
FullQuery = 'select id, name, Region__r.Id, Region__r.Name, CreatedDate from Country__c where Id in (select country_link__c from Market__c where Focus_Year__c = True)';
} else {
FullQuery = 'select id, name, Region__r.Id, Region__r.Name, CreatedDate from Country__c where Id in (select country_link__c from Market__c where Focus_Year__c = True) and Region__r.Id == :selectedRegion';
}
List<country__c> RelevantCountryList2 = Database.query(FullQuery);
system.debug(RelevantCountryList2);
Cuando hago eso, obtengo un error: FATAL_ERROR System.QueryException: unexpected token: ‘==’.
¿Alguna idea de qué estoy haciendo mal?
davy.ai
El error indica que estás utilizando la sintaxis incorrecta para el operador condicional. En SOQL, los operadores condicionales utilizan un solo signo igual (=) en lugar de un doble signo igual (==). Por lo tanto, cambia la línea:
FullQuery = ‘select id, name, Region__r.Id, Region__r.Name, CreatedDate from Country__c where Id in (select country_link__c from Market__c where Focus_Year__c = True) and Region__r.Id == :selectedRegion’;
a:
FullQuery = ‘select id, name, Region__r.Id, Region__r.Name, CreatedDate from Country__c where Id in (select country_link__c from Market__c where Focus_Year__c = True) and Region__r.Id = :selectedRegion’;
Esto debería resolver el error que estás enfrentando.