It is the total lack of any value, which is different from a blank (0-length) empty value. These are non-null values:
| makeresults | eval non-null_empty="", non-null_space = " ", non-null_letter = "1" | foreach non* [ eval <<FIELD>>_len = len('<<FIELD>>') ] | table *null*
This are nulls (they do not exist at all):
| makeresults | eval now_null=null() | eval now_null_len=len(now_null), always_null_len=len(always_null) | table now_null now_null_len always_null always_null_len
@mkhedr community would be able to assist you further if you provide more context to what are you trying to see and where you see NULL value.
NULL value represents and event row where specific field being queried is not present. There are several scenarios this may happen:
If it is with reference to timechart and you have timechart split by a specific field lets say
field1 and you see the
NULL series that would be because you have filtered events where
field1 does not exist.
field1="*" to your main search query while pulling data from index solves this.
If you have some calculations/evaluations which do not apply to all the rows selected then it will generate fields with NULL values. For example, if
field1 below has three or more values, then
myfield will have NULL values foe each event where
field1 is not
| eval myfield=case(field1=="alpha","A", field1=="beta","B")
Adding a default case using
true() condition usually fixes this by providing the default value. For example:
| eval myfield=case(field1=="alpha","A", field1=="beta","B", true(),"unknown")
These are just couple of scenarios, but there may be several other situations where you can have NULL value in your data like referring to field at particular pipe in SPL where it may not exist. So requesting you to provide more context to your question for us to assist with your exact question.