CASE(?) to write in a different column based on a string pattern - Mailing list pgsql-general

From Moreno Andreo
Subject CASE(?) to write in a different column based on a string pattern
Date
Msg-id 5bbe8366-bcd4-7f6f-94c8-ebc465c3b6b7@evolu-s.it
Whole thread Raw
Responses Re: CASE(?) to write in a different column based on a string pattern  (Geoff Winkless <pgsqladmin@geoff.dj>)
List 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.-




pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: here does postgres take its timezone information from?
Next
From: Geoff Winkless
Date:
Subject: Re: CASE(?) to write in a different column based on a string pattern