- /
-
- Docs /
- Query Operators
Query Operators
A comprehensive reference of query operators used across all ServiceNow query APIs
Last modified 2026-03-16
Jace Benson
Query Operators
These operators are used across all ServiceNow query APIs to filter and retrieve records. They work consistently whether you're using:
- GlideRecord – The standard server-side API for database operations
- GlideRecordSecure – GlideRecord with ACL enforcement
- GlideQuery – The modern, expressive alternative to GlideRecord
- GlideAggregate – For database aggregation queries (COUNT, SUM, MIN, MAX, AVG)
Using Operators
In GlideRecord & GlideRecordSecure
Use operators with addQuery() or addEncodedQuery():
var gr = new GlideRecord('incident');
gr.addQuery('priority', '<=', 2);
gr.addQuery('state', 'IN', '1,2');
gr.query();
In GlideQuery
Pass operators as the second argument in where():
new GlideQuery('incident')
.where('priority', '<=', 2)
.where('state', 'IN', [1, 2])
.select();
In GlideAggregate
Operators work the same as GlideRecord:
var ga = new GlideAggregate('incident');
ga.addQuery('priority', '<=', 2);
ga.addAggregate('COUNT');
ga.query();
Operator Reference
| Operator label | Equivalent query operator | Example query |
|---|---|---|
| is not | != |
short_description!=Network storage unavailable |
| and | ^ |
active=true^CallerISNOTEMPTY |
| OR filter (new query) | ^NQ |
active=true^NQactive=false |
| OR condition | ^OR |
short_descriptionISEMPTY^ORdescriptionISEMPTY |
| before | < |
sla_due<javascript:gs.daysAgoStart(0) |
| less than | < |
reassignment_count<2 |
| at or before | <= |
sla_due<=javascript:gs.daysAgoEnd(0) |
| less than or is | <= |
short_description<=s |
| is | = |
short_description=Network storage unavailable |
| after | > |
sla_due>javascript:gs.daysAgoEnd(0) |
| greater than | > |
impact>2 |
| at or after | >= |
sla_due>=javascript:gs.daysAgoStart(0) |
| greater than or is | >= |
short_description>=s |
| is anything | ANYTHING |
short_descriptionANYTHING |
| between | BETWEEN |
short_descriptionBETWEENq@t |
| between | BETWEEN |
impactBETWEEN1@2 |
| between | BETWEEN |
sla_dueBETWEENjavascript:gs.daysAgoStart(1)@javascript:gs.daysAgoEnd(0) |
| between | BETWEEN |
reassignment_countBETWEEN1@2 |
| changes from | CHANGESFROM |
stateCHANGESFROM4^EQ |
| changes to | CHANGESTO |
stateCHANGESTO4^EQ |
| trend (after) | DATEPART |
sla_dueDATEPARTMonday@javascript:gs.datePart('dayofweek','monday','GT') |
| trend (before) | DATEPART |
sla_dueDATEPARTMonday@javascript:gs.datePart('dayofweek','monday','LT') |
| trend (on or after) | DATEPART |
sla_dueDATEPARTMonday@javascript:gs.datePart('dayofweek','monday','GE') |
| trend (on or before) | DATEPART |
sla_dueDATEPARTMonday@javascript:gs.datePart('dayofweek','monday','LE') |
| trend (on) | DATEPART |
sla_dueDATEPARTMonday@javascript:gs.datePart('dayofweek','monday','EE') |
| is (dyanmic) | DYNAMIC |
caller_idDYNAMIC54635e965f510100a9ad2572f2b4774c |
| is empty string | EMPTYSTRING |
caller_idEMPTYSTRING |
| ends with | ENDSWITH |
short_descriptionENDSWITHoutage |
| greater than field | GT_FIELD |
reassignment_countGT_FIELDreopen_count |
| greater than or is field | GT_OR_EQUALS_FIELD |
reassignment_countGT_OR_EQUALS_FIELDreopen_count |
| is one of | IN |
impactIN1,2 |
| is empty | ISEMPTY |
short_descriptionISEMPTY |
| is not empty | ISNOTEMPTY |
activeISNOTEMPTY |
| is less than | LESSTHAN |
sla_dueLESSTHANactivity_due@day@before@3 |
| contains | LIKE |
subcategoryLIKEem |
| less than field | LT_FIELD |
reassignment_countLT_FIELDreopen_count |
| less than or is field | LT_OR_EQUALS_FIELD |
reassignment_countLT_OR_EQUALS_FIELDreopen_count |
| is more than | MORETHAN |
sla_dueMORETHANactivity_due@day@before@1 |
| is not one of | NOT IN |
subcategoryNOT INdb2,sql server,oracle |
| does not contain | NOT LIKE |
subcategoryNOT LIKEem |
| not on | NOTONToday |
sla_dueNOTONToday@javascript:gs.daysAgoStart(0)@javascript:gs.daysAgoEnd(0) |
| is different | NSAMEAS |
activeNSAMEASmade_sla |
| on | ONToday |
sla_dueONToday@javascript:gs.daysAgoStart(0)@javascript:gs.daysAgoEnd(0) |
| relative (on) | RELATIVEEE |
sla_dueRELATIVEEE@hour@ago@1 |
| relative (on or after) | RELATIVEGE |
sla_dueRELATIVEGE@hour@ago@1 |
| relative (after) | RELATIVEGT |
sla_dueRELATIVEGT@hour@ago@1 |
| relative (on or before) | RELATIVELE |
sla_dueRELATIVELE@hour@ago@1 |
| relative (before) | RELATIVELT |
sla_dueRELATIVELT@hour@ago@1 |
| is same | SAMEAS |
short_descriptionSAMEASdescription |
| starts with | STARTSWITH |
subcategorySTARTSWITHem |
| changes | VALCHANGES |
stateVALCHANGES |