es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  ,

Answer

  1. Avatar for 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.

Comments are closed.