Re: BUG #1839: insert into table (column) values (nullif('',''));
От | Michael Fuhr |
---|---|
Тема | Re: BUG #1839: insert into table (column) values (nullif('','')); |
Дата | |
Msg-id | 20050822150727.GA60276@winnie.fuhr.org обсуждение исходный текст |
Ответ на | BUG #1839: insert into table (column) values (nullif('','')); ("Matt" <survivedsushi@yahoo.com>) |
Список | pgsql-bugs |
On Sun, Aug 21, 2005 at 06:17:28PM +0100, Matt wrote: > > insert into table (column) values (nullif('','')); > ERROR: column "column" is of type boolean but > expression is of type text. > > inserting NULL works. nullif('','') should return NULL > if both values are equal? It works in MSSQL. NULLIF's return type is derived from the argument types; for more information see "UNION, CASE, and ARRAY Constructs" in the "Type Conversion" chapter of the documentation (NULLIF is a CASE construct): http://www.postgresql.org/docs/8.0/static/typeconv-union-case.html The type resolution behavior is defined in the SQL standard (9.3 "Set operation result data types" in SQL92; 9.3 "Data types of results of aggregations" in SQL:1999). > Is there different function to accomplish a insert > nullif('','') test. What are the possible values of NULLIF's arguments? It's not clear what should happen if they're *not* equal. What value should the boolean column receive in the following case? INSERT INTO table (column) VALUES (NULLIF('abc', '')); Can you tell us more about what the NULLIF is trying to achieve? -- Michael Fuhr
В списке pgsql-bugs по дате отправления: