Skip to main content
Version: v2.x

BigQuery: Filter Using Comparisons

Introduction

Comparison operators are used to compare values of the same type. For example, to compare two numbers, two strings, two dates, etc.

Equality operators (_eq, _neq)

The _eq (equal to) or the _neq (not equal to) operators are compatible with any BigQuery type other than Geography or Json (like Int, Numeric, String, Timestamp etc).

The following are examples of using the equality operators on different types.

Example: Integer (works with Numeric, BigDecimal, Float64, etc.)

Fetch data about an author whose id (an integer field) is equal to 3:

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

Example: String

Fetch a list of authors with name (a text field) as "Sidney":

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

Example: Boolean

Fetch a list of articles that have not been published (is_published is a boolean field):

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

Example: Date (works with DateTime etc.)

Fetch a list of articles that were published on a certain date (published_on is a datetime field):

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available
Caveat for "null" values

By design, the _eq or _neq operators will not return rows with null values.

To also return rows with null values, the _is_null operator needs to be used along with these joined by the _or operator.

For example, to fetch a list of articles where the is_published column is either false or null:

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

Greater than or less than operators (_gt, _lt, _gte, _lte)

The _gt (greater than), _lt (less than), _gte (greater than or equal to), _lte (less than or equal to) operators are compatible with any BigQuery type other than Json or Geography (like Int, Numeric, String, Timestamp etc).

The following are examples of using these operators on different types:

Example: Integer (works with Numeric, BigDecimal, Float64, etc.)

Fetch a list of articles rated 4 or more (rating is an integer field):

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

Example: String

Fetch a list of authors whose names begin with M or any letter that follows M (essentially, a filter based on a dictionary sort):

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

Example: Date (works with DateTime etc.)

Fetch a list of articles that were published on or after date "01/01/2018":

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

List based search operators (_in, _nin)

The _in (in a list) and _nin (not in list) operators are used to compare field values to a list of values. They are compatible with any BigQuery type other than Geography or Json (like Int, Numeric, String, Timestamp etc).

The following are examples of using these operators on different types:

Example: Integer (works with Numeric, BigDecimal, Float64, etc.)

Fetch a list of articles rated 1, 3 or 5:

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

Example: String

Fetch a list of those authors whose names are NOT part of a list:

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available

Filter or check for null values (_is_null)

Checking for null values can be achieved using the _is_null operator.

Example: Filter null values in a field

Fetch a list of articles that have a value in the published_on field:

GraphiQL
Query Variables
Request Headers
Documentation Explorer
No Schema Available