In database terminology NULL means unknown. For example let's say you have a table containing people and a column called Age that allows NULL values. Here is an example of the data that could be in this table:
Code:
Name Age
---- ---
Alice NULL
Bob 41
Charlie NULL
The age's of both Alice and Charlie are unknown (or NULL), they may be different or they may be the same, it is not known. Therefore both Alice and Charlie might be 28 years old, or Alice might by 26 and Charlie might be 54, it is simply not know.
Therefore the answer to your question of whether a NULL value is different from another NULL value is that they might be. Your particular database might imply that NULL values are the same, for example let's say you have a customer table with a NULLable column containing the number of orders they have placed, the data might look like this:
Code:
Name OrderCount
---- ----------
Alice NULL
Bob 2
Charlie NULL
The fact that the number of orders that Alice and Charlie have placed are both NULL might mean that they have not placed any orders, therefore in this situation both the NULL values are indeed the same they are both zero.
I would like to point out that I would not design my databases this way, the number of orders that Alice and Charlie have placed is not unknown, it is zero or none. Therefore in the real world I would make this a non-NULLable column with a default of zero.
You should not assume that 2 NULL values are the same or different. NULL means unknown, you can not tell, will not be able to tell and never have been able to tell if 2 NULL values are the same or different.
Regards
Owain Williams