When you use the Unknown value (?) in a WHERE clause with the DataServer, the Unknown value (?) satisfies only the equals (=) or not equal (<>) operator. You can also use a zero-length character string in a WHERE clause. The Unknown value (?) and zero-length character string are not the same. The Unknown value (?) translates to a NULL, which is a special marker in a data source that supports NULLs used to represent missing information. On the other hand, zero-length strings and blank columns contain actual values. Both of the following statements find the first customer record with a zero-length string in the address2 field. Notice the space between the quotation marks in the first statement:
FIND FIRST customer WHERE customer.address2 EQ " ".
FIND FIRST customer WHERE customer.address2 EQ "".
Although "" and " " evaluate the same way in a WHERE clause, they have different results when you use them with the BEGINS function. For example, the following statement retrieves all customer names except those that have the Unknown value (?):
FOR EACH customer WHERE customer.name BEGINS "":
The following statement uses "" to retrieve only those names that begin with a space: