Re: Using || operator to fold multiple columns into one
От | A. Kretschmer |
---|---|
Тема | Re: Using || operator to fold multiple columns into one |
Дата | |
Msg-id | 20091223085031.GA12007@a-kretschmer.de обсуждение исходный текст |
Ответ на | Using || operator to fold multiple columns into one (Bryce Nesbitt <bryce2@obviously.com>) |
Список | pgsql-sql |
In response to Bryce Nesbitt : > Dear experts, > > This point is confusing me with the || operator. I've got a table with > "one column per data type", like so: > > # \d context_keyvals; > Table "public.context_keyvals" > Column | Type | Modifiers > -------------+-----------------------------+----------- > context_key | integer | not null > keyname | text | > t_number | integer | > t_string | text | > t_boolean | boolean | > t_date | timestamp without time zone | > Indexes: > "context_keyvals_ck" btree (context_key) CLUSTER > Foreign-key constraints: > "context_keyvals_context_key_fkey" FOREIGN KEY (context_key) > REFERENCES contexts(context_key) ON DELETE CASCADE > # select version() > PostgreSQL 8.3.8 on x86_64-pc-linux-gnu, compiled by GCC gcc-4.3.real > (Debian 4.3.2-1.1) 4.3.2 > > ------------------------------ > Just for pretty sake I'd like to be able to use psql to view it like this: > > # select context_key,keyname,t_number||t_string||t_date||t_boolean as > value from context_keyvals; > > But it is not working, the columns always come up empty. I can use the > || operator to concatenate strings: > # select '--'||t_number::text from context_keyvals; > > But the moment I try to combine columns, the result is blank. > # select '--'||t_number::text||t_string::text from context_keyvals; At least one column contains NULL. To handle that, use coalesce(column,'') to change NULL to ''. Andreas -- Andreas Kretschmer Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header) GnuPG: 0x31720C99, 1006 CCB4 A326 1D42 6431 2EB0 389D 1DC2 3172 0C99
В списке pgsql-sql по дате отправления: