Re: nullif BUG???
| От | Tom Lane |
|---|---|
| Тема | Re: nullif BUG??? |
| Дата | |
| Msg-id | 197.996376523@sss.pgh.pa.us обсуждение |
| Ответ на | Re: nullif BUG??? ("Josh Berkus" <josh@agliodbs.com>) |
| Список | pgsql-sql |
"Josh Berkus" <josh@agliodbs.com> writes: > Er... what were you expecting, exactly? AFAICT, the quoted behavior is correct per the defined behavior of nullif(), cf http://www.ca.postgresql.org/users-lounge/docs/7.1/postgres/functions-conditional.html NULLIF(value1, value2) The NULLIF function returns NULL if and only if value1 andvalue2 are equal. Otherwise it returns value1. > Except for IS NULL (and COALESCE, which uses IS NULL) any operation > involving a NULL is also NULL. Well, that's not quite the correct reasoning. NULLIF and COALESCE are both shorthands for CASE expressions, and hence are capable of returning non-NULL for a NULL input. It all depends on how the CASE tests are phrased. NULLIF is essentiallyCASE WHEN value1 = value2 THEN NULL ELSE value1 END In the quoted example, "NULL = 5" will yield NULL, which is interpreted as a FALSE case test, so you get the ELSE case, ie value1, ie NULL. regards, tom lane
В списке pgsql-sql по дате отправления: