I have a custom User field, a nullable integer. As expected, I see the following behavior:

$User.Custom__c <> 0   // FALSE
$User.Custom__c =  0   // FALSE

Apex works the same way, and this seems to me to be a normal way of handling nulls in inequalities. However, I'm also observing this behavior:

NOT( $User.Custom__c <> 0 )  // FALSE
NOT( $User.Custom__c =  0 )  // FALSE

A similar operation in Apex would return TRUE. I'm having trouble wrapping my mind around how this works. Is this intentional, or does the rule engine that evaluates these expressions incorrectly handle null comparisons?

Note: it's fairly trivial to shore up my logic with some ISNULL() calls. I'm specifically asking about whatever system evaluates these expressions, not about how to get my expected TRUE value.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.