Skip to content

QRY_Builder.ConditionBuilder

Class

apex
global inherited sharing class QRY_Builder.ConditionBuilder

Fluent builder for field-level conditions (WHERE and HAVING).


Methods

MethodDescription
global QRY_Builder.Builder contains(String value)Adds a LIKE condition with wildcards on both sides (contains).
global QRY_Builder.Builder endsWith(String value)Adds a LIKE condition with wildcard at start (ends with).
global QRY_Builder.Builder equals(Object value)Adds an = condition.
global QRY_Builder.Builder equals(SObject record)Adds an = condition comparing to an SObject's Id.
global QRY_Builder.Builder excludes(List<Object> values)Adds an EXCLUDES condition for multi-picklist fields.
global QRY_Builder.Builder excludes(Set<Object> values)Adds an EXCLUDES condition for multi-picklist fields using a Set.
global QRY_Builder.Builder excludesStrict(List<Object> values)Adds an EXCLUDES condition with strict empty list handling.
global QRY_Builder.Builder excludesStrict(Set<Object> values)Adds an EXCLUDES condition with strict empty set handling.
global QRY_Builder.Builder greaterThan(Object value)Adds a > condition.
global QRY_Builder.Builder greaterThanOrEquals(Object value)Adds a >= condition.
global QRY_Builder.Builder includes(List<Object> values)Adds an INCLUDES condition for multi-picklist fields.
global QRY_Builder.Builder includes(Set<Object> values)Adds an INCLUDES condition for multi-picklist fields using a Set.
global QRY_Builder.Builder includesStrict(List<Object> values)Adds an INCLUDES condition with strict empty list handling.
global QRY_Builder.Builder includesStrict(Set<Object> values)Adds an INCLUDES condition with strict empty set handling.
global QRY_Builder.Builder isIn(List<Object> values)Adds an IN condition using a List.
global QRY_Builder.Builder isIn(List<SObject> records)Adds an IN condition using a List of SObjects.
global QRY_Builder.Builder isIn(List<SObject> records, SObjectField field)Adds an IN condition by extracting field values from SObjects.
global QRY_Builder.Builder isIn(QRY_Builder.Builder subquery)Adds a semi-join IN condition using a subquery.
global QRY_Builder.Builder isIn(Set<Object> values)Adds an IN condition using a Set.
global QRY_Builder.Builder isInStrict(List<Object> values)Adds an IN condition with strict empty list handling.
global QRY_Builder.Builder isInStrict(List<SObject> records)Adds an IN condition using SObjects with strict handling.
global QRY_Builder.Builder isInStrict(List<SObject> records, SObjectField field)Adds an IN condition by extracting field values with strict handling.
global QRY_Builder.Builder isInStrict(Set<Object> values)Adds an IN condition with strict empty set handling.
global QRY_Builder.Builder isNotNull()Adds an IS NOT NULL condition.
global QRY_Builder.Builder isNull()Adds an IS NULL condition.
global QRY_Builder.Builder lessThan(Object value)Adds a < condition.
global QRY_Builder.Builder lessThanOrEquals(Object value)Adds a <= condition.
global QRY_Builder.Builder notEquals(Object value)Adds a != condition.
global QRY_Builder.Builder notEquals(SObject record)Adds a != condition comparing to an SObject's Id.
global QRY_Builder.Builder notIn(QRY_Builder.Builder subquery)Adds an anti-join NOT IN condition using a subquery.
global QRY_Builder.Builder notInSet(List<Object> values)Adds a NOT IN condition using a List.
global QRY_Builder.Builder notInSet(List<SObject> records)Adds a NOT IN condition using a List of SObjects.
global QRY_Builder.Builder notInSet(List<SObject> records, SObjectField field)Adds a NOT IN condition by extracting field values from SObjects.
global QRY_Builder.Builder notInSet(Set<Object> values)Adds a NOT IN condition using a Set.
global QRY_Builder.Builder notInSetStrict(List<Object> values)Adds a NOT IN condition with strict empty list handling.
global QRY_Builder.Builder notInSetStrict(List<SObject> records)Adds a NOT IN condition using SObjects with strict handling.
global QRY_Builder.Builder notInSetStrict(List<SObject> records, SObjectField field)Adds a NOT IN condition by extracting field values with strict handling.
global QRY_Builder.Builder notInSetStrict(Set<Object> values)Adds a NOT IN condition with strict empty set handling.
global QRY_Builder.Builder startsWith(String value)Adds a LIKE condition with wildcard at end (starts with).

contains

apex
global QRY_Builder.Builder contains(String value)

Adds a LIKE condition with wildcards on both sides (contains).

Parameters

ParameterTypeDescription
valueStringText to search for

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Name).contains('Corp')
    .toList();

endsWith

apex
global QRY_Builder.Builder endsWith(String value)

Adds a LIKE condition with wildcard at start (ends with).

Parameters

ParameterTypeDescription
valueStringText suffix

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Name).endsWith('Inc.')
    .toList();

equals

apex
global QRY_Builder.Builder equals(Object value)

Adds an = condition.

Parameters

ParameterTypeDescription
valueObjectValue to compare against

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Name).equals('Acme Corp')
    .toList();
apex
global QRY_Builder.Builder equals(SObject record)

Adds an = condition comparing to an SObject's Id.

Parameters

ParameterTypeDescription
recordSObjectSObject whose Id to compare against

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Contact> contacts = QRY_Builder.selectFrom(Contact.SObjectType)
    .condition(Contact.AccountId).equals(account)
    .toList();

excludes

apex
global QRY_Builder.Builder excludes(List<Object> values)

Adds an EXCLUDES condition for multi-picklist fields.

Parameters

ParameterTypeDescription
valuesListValues that must not be selected

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Object> excluded = new List<Object>{'Inactive', 'Archived'};
List<Lead> leads = QRY_Builder.selectFrom(Lead.SObjectType)
    .condition('Tags__c').excludes(excluded)
    .toList();
apex
global QRY_Builder.Builder excludes(Set<Object> values)

Adds an EXCLUDES condition for multi-picklist fields using a Set.

Parameters

ParameterTypeDescription
valuesSetValues that must not be selected

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
Set<Object> excluded = new Set<Object>{'Inactive', 'Archived'};
List<Lead> leads = QRY_Builder.selectFrom(Lead.SObjectType)
    .condition('Tags__c').excludes(excluded)
    .toList();

excludesStrict

apex
global QRY_Builder.Builder excludesStrict(List<Object> values)

Adds an EXCLUDES condition with strict empty list handling.

Parameters

ParameterTypeDescription
valuesListValues that must not be selected (must not be null or empty)

Returns QRY_Builder.Builder — Builder for chaining

Throws

ExceptionDescription
IllegalArgumentExceptionif values is null or empty

Example

apex
List<Object> excluded = new List<Object>{'Inactive', 'Archived'};
List<Lead> leads = QRY_Builder.selectFrom(Lead.SObjectType)
    .condition('Tags__c').excludesStrict(excluded)
    .toList();
apex
global QRY_Builder.Builder excludesStrict(Set<Object> values)

Adds an EXCLUDES condition with strict empty set handling.

Parameters

ParameterTypeDescription
valuesSetValues that must not be selected (must not be null or empty)

Returns QRY_Builder.Builder — Builder for chaining

Throws

ExceptionDescription
IllegalArgumentExceptionif values is null or empty

Example

apex
Set<Object> excluded = new Set<Object>{'Inactive', 'Archived'};
List<Lead> leads = QRY_Builder.selectFrom(Lead.SObjectType)
    .condition('Tags__c').excludesStrict(excluded)
    .toList();

greaterThan

apex
global QRY_Builder.Builder greaterThan(Object value)

Adds a > condition.

Parameters

ParameterTypeDescription
valueObjectValue to compare against

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.AnnualRevenue).greaterThan(1000000)
    .toList();

greaterThanOrEquals

apex
global QRY_Builder.Builder greaterThanOrEquals(Object value)

Adds a >= condition.

Parameters

ParameterTypeDescription
valueObjectValue to compare against

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.NumberOfEmployees).greaterThanOrEquals(100)
    .toList();

includes

apex
global QRY_Builder.Builder includes(List<Object> values)

Adds an INCLUDES condition for multi-picklist fields.

Parameters

ParameterTypeDescription
valuesListValues that must all be selected

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Object> interests = new List<Object>{'Technology', 'Finance'};
List<Lead> leads = QRY_Builder.selectFrom(Lead.SObjectType)
    .condition('Interests__c').includes(interests)
    .toList();
apex
global QRY_Builder.Builder includes(Set<Object> values)

Adds an INCLUDES condition for multi-picklist fields using a Set.

Parameters

ParameterTypeDescription
valuesSetValues that must all be selected

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
Set<Object> interests = new Set<Object>{'Technology', 'Finance'};
List<Lead> leads = QRY_Builder.selectFrom(Lead.SObjectType)
    .condition('Interests__c').includes(interests)
    .toList();

includesStrict

apex
global QRY_Builder.Builder includesStrict(List<Object> values)

Adds an INCLUDES condition with strict empty list handling.

Parameters

ParameterTypeDescription
valuesListValues that must all be selected (must not be null or empty)

Returns QRY_Builder.Builder — Builder for chaining

Throws

ExceptionDescription
IllegalArgumentExceptionif values is null or empty

Example

apex
List<Object> interests = new List<Object>{'Technology', 'Finance'};
List<Lead> leads = QRY_Builder.selectFrom(Lead.SObjectType)
    .condition('Interests__c').includesStrict(interests)
    .toList();
apex
global QRY_Builder.Builder includesStrict(Set<Object> values)

Adds an INCLUDES condition with strict empty set handling.

Parameters

ParameterTypeDescription
valuesSetValues that must all be selected (must not be null or empty)

Returns QRY_Builder.Builder — Builder for chaining

Throws

ExceptionDescription
IllegalArgumentExceptionif values is null or empty

Example

apex
Set<Object> interests = new Set<Object>{'Technology', 'Finance'};
List<Lead> leads = QRY_Builder.selectFrom(Lead.SObjectType)
    .condition('Interests__c').includesStrict(interests)
    .toList();

isIn

apex
global QRY_Builder.Builder isIn(List<Object> values)

Adds an IN condition using a List.

Parameters

ParameterTypeDescription
valuesListValues to include

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Object> types = new List<Object>{'Customer', 'Partner'};
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Type).isIn(types)
    .toList();
apex
global QRY_Builder.Builder isIn(List<SObject> records)

Adds an IN condition using a List of SObjects.

Parameters

ParameterTypeDescription
recordsListSObjects to include (their Ids will be matched)

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Contact> contacts = QRY_Builder.selectFrom(Contact.SObjectType)
    .condition(Contact.AccountId).isIn(parentAccounts)
    .toList();
apex
global QRY_Builder.Builder isIn(List<SObject> records, SObjectField field)

Adds an IN condition by extracting field values from SObjects.

Parameters

ParameterTypeDescription
recordsListSObjects to extract values from
fieldSObjectThe field to extract values from

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Id).isIn(contacts, Contact.AccountId)
    .toList();
apex
global QRY_Builder.Builder isIn(QRY_Builder.Builder subquery)

Adds a semi-join IN condition using a subquery.

Parameters

ParameterTypeDescription
subqueryQRY_Builder.BuilderBuilder representing the subquery

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
QRY_Builder.Builder subquery = QRY_Builder.selectFrom(Contact.SObjectType)
    .fields(new List<SObjectField>{Contact.AccountId})
    .condition(Contact.Email).isNotNull();
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Id).isIn(subquery)
    .toList();
apex
global QRY_Builder.Builder isIn(Set<Object> values)

Adds an IN condition using a Set.

Parameters

ParameterTypeDescription
valuesSetValues to include

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
Set<Object> industries = new Set<Object>{'Technology', 'Finance'};
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Industry).isIn(industries)
    .toList();

isInStrict

apex
global QRY_Builder.Builder isInStrict(List<Object> values)

Adds an IN condition with strict empty list handling.

Parameters

ParameterTypeDescription
valuesListValues to include (must not be null or empty)

Returns QRY_Builder.Builder — Builder for chaining

Throws

ExceptionDescription
IllegalArgumentExceptionif values is null or empty

Example

apex
List<Object> statuses = new List<Object>{'Active', 'Pending'};
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Type).isInStrict(statuses)
    .toList();
apex
global QRY_Builder.Builder isInStrict(List<SObject> records)

Adds an IN condition using SObjects with strict handling.

Parameters

ParameterTypeDescription
recordsListSObjects to include (must not be null or empty)

Returns QRY_Builder.Builder — Builder for chaining

Throws

ExceptionDescription
IllegalArgumentExceptionif records is null or empty

Example

apex
List<Account> parents = [SELECT Id FROM Account LIMIT 10];
List<Contact> contacts = QRY_Builder.selectFrom(Contact.SObjectType)
    .condition(Contact.AccountId).isInStrict(parents)
    .toList();
apex
global QRY_Builder.Builder isInStrict(List<SObject> records, SObjectField field)

Adds an IN condition by extracting field values with strict handling.

Parameters

ParameterTypeDescription
recordsListSObjects to extract values from (must not be null or empty)
fieldSObjectThe field to extract values from

Returns QRY_Builder.Builder — Builder for chaining

Throws

ExceptionDescription
IllegalArgumentExceptionif records is null or empty

Example

apex
List<Contact> contacts = [SELECT AccountId FROM Contact LIMIT 10];
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Id).isInStrict(contacts, Contact.AccountId)
    .toList();
apex
global QRY_Builder.Builder isInStrict(Set<Object> values)

Adds an IN condition with strict empty set handling.

Parameters

ParameterTypeDescription
valuesSetValues to include (must not be null or empty)

Returns QRY_Builder.Builder — Builder for chaining

Throws

ExceptionDescription
IllegalArgumentExceptionif values is null or empty

Example

apex
Set<Object> statuses = new Set<Object>{'Active', 'Pending'};
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Type).isInStrict(statuses)
    .toList();

isNotNull

apex
global QRY_Builder.Builder isNotNull()

Adds an IS NOT NULL condition.

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Contact> contacts = QRY_Builder.selectFrom(Contact.SObjectType)
    .condition(Contact.Email).isNotNull()
    .toList();

isNull

apex
global QRY_Builder.Builder isNull()

Adds an IS NULL condition.

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Contact> contacts = QRY_Builder.selectFrom(Contact.SObjectType)
    .condition(Contact.Email).isNull()
    .toList();

lessThan

apex
global QRY_Builder.Builder lessThan(Object value)

Adds a < condition.

Parameters

ParameterTypeDescription
valueObjectValue to compare against

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.AnnualRevenue).lessThan(50000)
    .toList();

lessThanOrEquals

apex
global QRY_Builder.Builder lessThanOrEquals(Object value)

Adds a <= condition.

Parameters

ParameterTypeDescription
valueObjectValue to compare against

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.NumberOfEmployees).lessThanOrEquals(10)
    .toList();

notEquals

apex
global QRY_Builder.Builder notEquals(Object value)

Adds a != condition.

Parameters

ParameterTypeDescription
valueObjectValue to compare against

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Industry).notEquals('Government')
    .toList();
apex
global QRY_Builder.Builder notEquals(SObject record)

Adds a != condition comparing to an SObject's Id.

Parameters

ParameterTypeDescription
recordSObjectSObject whose Id to exclude

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Contact> contacts = QRY_Builder.selectFrom(Contact.SObjectType)
    .condition(Contact.AccountId).notEquals(excludedAccount)
    .toList();

notIn

apex
global QRY_Builder.Builder notIn(QRY_Builder.Builder subquery)

Adds an anti-join NOT IN condition using a subquery.

Parameters

ParameterTypeDescription
subqueryQRY_Builder.BuilderBuilder representing the subquery

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
QRY_Builder.Builder subquery = QRY_Builder.selectFrom(Contact.SObjectType)
    .fields(new List<SObjectField>{Contact.AccountId})
    .condition(Contact.HasOptedOutOfEmail).equals(true);
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Id).notIn(subquery)
    .toList();

notInSet

apex
global QRY_Builder.Builder notInSet(List<Object> values)

Adds a NOT IN condition using a List.

Parameters

ParameterTypeDescription
valuesListValues to exclude

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Object> excluded = new List<Object>{'Competitor', 'Other'};
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Type).notInSet(excluded)
    .toList();
apex
global QRY_Builder.Builder notInSet(List<SObject> records)

Adds a NOT IN condition using a List of SObjects.

Parameters

ParameterTypeDescription
recordsListSObjects to exclude

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Account> excluded = [SELECT Id FROM Account WHERE Type = 'Competitor'];
List<Contact> contacts = QRY_Builder.selectFrom(Contact.SObjectType)
    .condition(Contact.AccountId).notInSet(excluded)
    .toList();
apex
global QRY_Builder.Builder notInSet(List<SObject> records, SObjectField field)

Adds a NOT IN condition by extracting field values from SObjects.

Parameters

ParameterTypeDescription
recordsListSObjects to extract values from
fieldSObjectThe field to extract values from

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Contact> contacts = [SELECT AccountId FROM Contact WHERE IsDeleted = true];
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Id).notInSet(contacts, Contact.AccountId)
    .toList();
apex
global QRY_Builder.Builder notInSet(Set<Object> values)

Adds a NOT IN condition using a Set.

Parameters

ParameterTypeDescription
valuesSetValues to exclude

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
Set<Object> excluded = new Set<Object>{'Competitor', 'Other'};
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Type).notInSet(excluded)
    .toList();

notInSetStrict

apex
global QRY_Builder.Builder notInSetStrict(List<Object> values)

Adds a NOT IN condition with strict empty list handling.

Parameters

ParameterTypeDescription
valuesListValues to exclude (must not be null or empty)

Returns QRY_Builder.Builder — Builder for chaining

Throws

ExceptionDescription
IllegalArgumentExceptionif values is null or empty

Example

apex
List<Object> excluded = new List<Object>{'Competitor', 'Other'};
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Type).notInSetStrict(excluded)
    .toList();
apex
global QRY_Builder.Builder notInSetStrict(List<SObject> records)

Adds a NOT IN condition using SObjects with strict handling.

Parameters

ParameterTypeDescription
recordsListSObjects to exclude (must not be null or empty)

Returns QRY_Builder.Builder — Builder for chaining

Throws

ExceptionDescription
IllegalArgumentExceptionif records is null or empty

Example

apex
List<Account> excluded = [SELECT Id FROM Account WHERE Type = 'Competitor'];
List<Contact> contacts = QRY_Builder.selectFrom(Contact.SObjectType)
    .condition(Contact.AccountId).notInSetStrict(excluded)
    .toList();
apex
global QRY_Builder.Builder notInSetStrict(List<SObject> records, SObjectField field)

Adds a NOT IN condition by extracting field values with strict handling.

Parameters

ParameterTypeDescription
recordsListSObjects to extract values from (must not be null or empty)
fieldSObjectThe field to extract values from

Returns QRY_Builder.Builder — Builder for chaining

Throws

ExceptionDescription
IllegalArgumentExceptionif records is null or empty

Example

apex
List<Contact> contacts = [SELECT AccountId FROM Contact WHERE IsDeleted = true];
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Id).notInSetStrict(contacts, Contact.AccountId)
    .toList();
apex
global QRY_Builder.Builder notInSetStrict(Set<Object> values)

Adds a NOT IN condition with strict empty set handling.

Parameters

ParameterTypeDescription
valuesSetValues to exclude (must not be null or empty)

Returns QRY_Builder.Builder — Builder for chaining

Throws

ExceptionDescription
IllegalArgumentExceptionif values is null or empty

Example

apex
Set<Object> excluded = new Set<Object>{'Competitor', 'Other'};
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Type).notInSetStrict(excluded)
    .toList();

startsWith

apex
global QRY_Builder.Builder startsWith(String value)

Adds a LIKE condition with wildcard at end (starts with).

Parameters

ParameterTypeDescription
valueStringText prefix

Returns QRY_Builder.Builder — Builder for chaining

Example

apex
List<Account> accounts = QRY_Builder.selectFrom(Account.SObjectType)
    .condition(Account.Name).startsWith('Acme')
    .toList();