#set TITLE = "null"
#include top

.SH NULL handling
In \fBshsql\fR statements and results, \fCNULL\fR represents a field that 
is empty, blank, or has no value.

#include space

.SH NULL in SQL statements

.LP
\fCNULL\fR may be specified in upper or lower case.

.LP 
In 
#set FILE = "whereclause.html"
#set TAG = "where clauses,"
#include link
it may appear on the right-hand side of equality comparisons
using any of the constructs shown below:
.IP
\fCX = null\fR 
.ig >>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
.>>
\fCX is null\fR
.IP
\fCX != null\fR 
.ig >>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
.>>
\fCX isnot null\fR  
.ig >>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
.>>
\fCX <> null\fR
.LP
\fCNULL\fR may also appear as a member of a list
for operations such as \fCIN\fR:
.IP
\fCX in "A,B,C,null"\fR

#include space

.SH NULL in result rows 
.LP
#set FILE = "shsql.1.html"
#set TAG = "shsql(1)"
#include link
represents \fCNULL\fR fields as \fCnull\fR by default.
When using the
#set FILE = "api.html"
#set TAG = "API,"
#include link
\fCNULL\fR fields are represented in returned result rows using the internal code 
discussed below, which is equals-sign (=) by default.  The calling program can convert
these fields as desired.

#include space

.SH Internal representation of NULL
.LP
In data files \fCNULL\fR is stored using a certain code.
By default this code is a single equals sign (\fC=\fR), but this can be set in your
#set FILE = "config.html#dbnull"
#set TAG = "project config file"
#include link
to be any symbol up to 4 characters in length.
Your \fCNULL\fR symbol should not cooincide with something that could 
occur as a meaningful non-null field in your data.
.LP
A data record containing
three null fields, using the default null symbol, would look like this in the data table file:
.IP
\fC28 Phoenix = = =\fR


#include bottom
