Thread: Any limitation in size for return result from SELECT?

Any limitation in size for return result from SELECT?

From
"Natasa Bulatovic"
Date:
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
 

Re: Any limitation in size for return result from SELECT?

From
Bruno Wolff III
Date:
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.


Re: Any limitation in size for return result from SELECT?

From
Stephan Szabo
Date:
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.




Re: Any limitation in size for return result from SELECT?

From
Joe Conway
Date:
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