If there might be NULL
values in the transaction table or the master table for the columns
that you specify in the DBKEY= option, use DBNULLKEYS=YES. When you
specify DBNULLKEYS=YES and specify a column that the DBKEY= data set
option defines as NOT NULL, SAS generates a WHERE clause to find NULL
values. For example, if you specify DBKEY=COLUMN and COLUMN is not
defined as NOT NULL, SAS generates a WHERE clause with this syntax:
WHERE ((COLUMN = ?) OR ((COLUMN IS NULL) AND (? IS NULL)))
This syntax enables
SAS to prepare the statement once and use it for any value (NULL or
NOT NULL) in the column. This syntax has the potential to be much
less efficient than the shorter form of the following WHERE clause.
When you specify DBNULLKEYS=NO or specify a column that is defined
as NOT NULL in the DBKEY= option, SAS generates a simple WHERE clause.
If you know that there
are no NULL values in the transaction table or the master table for
the columns that you specify in the DBKEY= option, you can use DBNULLKEYS=NO.
If you specify DBNULLKEYS=NO and DBKEY=COLUMN, SAS generates a shorter
form of the WHERE clause, regardless of whether the column that is
specified in DBKEY= is defined as NOT NULL.