Обсуждение: Any limitation in size for return result from SELECT?
Hi,
one question
Select statement returns as a result concatenated all varchar, text and char columns of a table as one single column ...
select col1||col2||col3||.....||col100 from table
However, when the number of concatenated columns is bigger than 22 no result is given back (tested in psql, as well as from pgplsql)....
Most of these columns for the test data are NULL...Datatypes of columns are mixed text, varchar, char...Select statement does not return any error...Just returns a row with a null result....
Any quick suggestions would be very useful....
best regards,
Bulatovic Natasa
On Tue, Feb 25, 2003 at 15:25:17 +0100, Natasa Bulatovic <n.bulatovic@zim.mpg.de> wrote: > > select col1||col2||col3||.....||col100 from table > > Most of these columns for the test data are NULL...Datatypes of columns are mixed text, varchar, char...Select statementdoes not return any error...Just returns a row with a null result.... If you concatenate null with another string you get null, not the other string. You need to use coalesce to convert nulls to empty strings.
On Tue, 25 Feb 2003, Natasa Bulatovic wrote: > Select statement returns as a result concatenated all varchar, text > and char columns of a table as one single column ... > > select col1||col2||col3||.....||col100 from table > > However, when the number of concatenated columns is bigger than 22 no > result is given back (tested in psql, as well as from pgplsql).... > > Most of these columns for the test data are NULL...Datatypes of > columns are mixed text, varchar, char...Select statement does not > return any error...Just returns a row with a null result.... Any quick > suggestions would be very useful.... Anything concatenated with a NULL is NULL. You'll probably want to use COALESCE(col1,'')||... for each of the columns that can be null.
Natasa Bulatovic wrote: > select col1||col2||col3||.....||col100 from table > > However, when the number of concatenated columns is bigger than 22 no > result is given back (tested in psql, as well as from pgplsql).... > > Most of these columns for the test data are NULL...Datatypes of Based on your description, I'd guess column 23 is the first null one. If you concatenate null with any value, you'll get a null result: regression=# select 'hello'; ?column? ---------- hello (1 row) regression=# select 'hello' || null; ?column? ---------- (1 row) regression=# select ('hello' || null) is null; ?column? ---------- t (1 row) HTH, Joe