From: | Moreno Andreo <moreno(dot)andreo(at)evolu-s(dot)it> |
---|---|
To: | PostgreSQL mailing lists <pgsql-general(at)postgresql(dot)org> |
Subject: | CASE(?) to write in a different column based on a string pattern |
Date: | 2019-11-13 16:24:40 |
Message-ID: | 5bbe8366-bcd4-7f6f-94c8-ebc465c3b6b7@evolu-s.it |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
I need to create a CASE (I think) statement to check for a string
pattern, and based on its value, write a substring in a different column
(alias).
I'm trying to create a COPY statement to port a table into antoher
database, which has a table with another format (that's why the aliases)
Let's write it in pseudoSQL:
given this
select pattern from tbl;
pattern
----------
foo1234
bar5678
baz9012
That's what I'm trying to achieve
select
pattern,
CASE when pattern like 'foo%' then ltrim(pattern, 'bar') as foo
when pattern like 'bar%' then ltrim(pattern, 'bar')
as bar
when pattern like 'baz%' then ltrim(pattern, 'baz')
as baz
END
from tbl;
|foo |bar |baz |
1234
5678
9012
(hoping text formatting is ok... 1234 should go in column foo, 568 in
bar and 9012 in baz)
Is it possible?
Thanks in advance
Moreno.-
From | Date | Subject | |
---|---|---|---|
Next Message | Geoff Winkless | 2019-11-13 16:36:43 | Re: CASE(?) to write in a different column based on a string pattern |
Previous Message | Tom Lane | 2019-11-13 14:41:08 | Re: here does postgres take its timezone information from? |