Field Names
The documentation explains how field names can be written with or without quotation marks in CrowdStrike Query Language, with special attention to cases where quotes are required for field names containing hyphens or special characters. It also covers how to properly use field names in expressions, including the use of the getField() function when working with field names that contain special characters.
In most places in a query, it is clear from the context whether a value or
the name of a field is expected. In these cases, the name of a field can
be written with or without quotation marks, meaning the same. For example,
math:cos("fieldName")
means the same as
math:cos(fieldName)
, because the argument
to the function is defined as a string denoting a field name, and not an
expression.
However, some field names cannot be written unquoted, because they are not
bare words in the CrowdStrike Query Language; for example,
host-name
or host/name
need quotes
when used in places where field names are expected: but do not:
host.name=*
,
host[0]=*
, and
"host-name"=*
all work, while
host-name=*
results in a syntax error.
Note
If your field name contains a hyphen, you must include the field name in double quotes. For example the field Vendor.api-name should be quoted as "Vendor.api-name".
In expressions, on the other hand, quotation marks always mean a string
value, while unquoted field names always mean the value of that field. To
use the value of a field with such a name in an expression, the function
getField()
can be used with the quoted name, like
coalesce([host, getField("host-name")])
.
This works because getField()
takes an expression and
reads the value of the field with that name.