Operator: Not In

Description

This is a multi-purpose operator that has different uses, depending on the type of the field, they generally fall into 3 categories:

Numeric Fields

In numeric fields, the NOT IN operator can be used to express a range of values that should be excluded from the results i.e.

Number NOT IN [50,1000]

Would return all entities which have a number that is not between 1 and 1000 (so either less than 50 or greater than 1000).

Other numeric fields that support "In" are DateTime field:

CreatedAt NOT IN ['2011-1-1','2012-1-1']

And also Time Span fields:

EstimatedDuration NOT IN ['5 minutes','1 day']

Picklists / fields with values

Fields which have a range of values, which include:

Also support IN - in these cases, the IN statement will act like an "OR", returning any records which match one or more of the values in the list.

Priority IN [High,Medium]

Please refer to the details of each field to see what types of value are supported i.e for packages you can supply either a Package's unique identifier, a package name or a package path, and those values can be mixed within a single IN statement:

Package NOT IN ['cf1264f7-4e53-4e6d-b0a2-9f6c00a3a244', 'Cycle 2', '/Script Library/Cycle 1/User Interface']

Sub-selects

Sub-selects provide a way to filter a query based on the results of a second query - sub-selects differ from an IN statement for a range of values by being surrounded with curly braces { .. } as opposed to square brackets [].

Sub-selects are an advanced feature, and depending on the field the sub-select may "select into" a different index, which exposes a different set of available fields.

Here is an example of a sub-select to retrieve all Scripts which are not related to low priority requirements within a specific project:

EntityType = Scripts AND RelatedTo NOT IN { EntityType = Requirement AND Priority = Low AND Project = 'Project XYZ' }