On 17 Feb 2016, at 3:33am, Denis Burke <burkeden at gmail.com> wrote:
> select case when null not in ('a') then 'not in list' else 'is in list' end;
>
> This gives "is in list". But since null is clearly not in the list of one
> member ('a'), I would expect this to generate "not in the list".
>
> Is this expected behavior, or a bug?
Expected behaviour.
The pseudo-value null is not a value like zero, it's a placeholder which means
"I don't know the value of this thing.". Thus a field with null in might be
'a'. So
> null not in ('a')
is not definitely true.
Simon.