Potential Result Set Differences

When the data contains null values, you might get different result sets depending on whether the processing is done in SAS missing value mode or in ANSI SQL null value mode. Although in many cases this does not present a problem, it is important to understand how these differences occur.
Processing SAS missing values is different than processing ANSI SQL null values and has significant implications in these situations:
  • when filtering data (for example, in a WHERE clause, a HAVING clause, or an outer join ON clause). SAS mode interprets null values as SAS missing values, which are known values, whereas ANSI mode interprets null values as unknown values.
  • when submitting outer joins where internal processing might generate nulls for intermediate result sets.
  • when comparing a blank character, SAS mode interprets the blank character as a missing value. In ANSI mode, a blank character is a blank character; it has no special meaning.