WHERE & HAVING
Structure
The where
and having
clauses use the following format:
WHERE: = [ CONDITION | ('AND'|'OR') | WHERE ],
CONDITION: = {field, op, val} | {field, op, subqry}
//...
where: [
{ field: f.select('name'), op: '=', val: 'acme' },
{ field: f.select('annualRevenue'), op: '>=', val: 100 }
]
where: [
{ field: f.select('name'), op: '=', val: 'acme' },
'OR',
{ field: f.select('annualRevenue'), op: '>=', val: 100 }
]
Nesting Conditions
Conditions can be grouped/nested in parentheses by starting a new array
where: [
{ field: f.select('name'), op: '=', val: 'acme' },
'AND',
[
{ field: f.select('annualRevenue'), op: '>=', val: 100 },
'OR',
{ field: f.select('active'), op: '=', val: true }
]
]
where: [
[
{ field: f.select('name'), op: '=', val: 'acme' },
'OR',
{ field: f.select('name'), op: '=', val: 'stark' },
],
'AND',
[
{ field: f.select('annualRevenue'), op: '>=', val: 100 },
'OR',
{ field: f.select('active'), op: '=', val: true }
]
]
where: [
{ field: f.select('name'), op: '=', val: 'acme' },
'OR',
[
{ field: f.select('annualRevenue'), op: '>=', val: 100 },
'AND',
[
{ field: f.select('active'), op: '=', val: true },
'OR',
{ field: f.select('accountSource'), op: '=', val: 'web' }
]
]
]
Value Rendering
Condition values are automatically converted based on their type:
string
string
{ field: f.select('name'), op: '=', val: 'acme' }
//-> Name = 'acme'
string[]
string[]
{ field: f.select('name'), op: 'IN', val: ['acme', 'stark'] }
//-> Name IN ('acme', 'stark')
number
number
{ field: f.select('annualRevenue'), op: '>', val: 100 }
//-> AnnualRevenue > 100
boolean
boolean
{ field: f.select('active'), op: '=', val: false }
//-> Active__c = false
Date
Date
{ field: f.select('createdDate'), op: '<', val: new Date() }
//-> CreatedDate < 2020-12-23T02:44:49z
Last updated
Was this helpful?