Search code examples
postgresqlpostgresql-9.3

PostgreSQL 9.3: Split given string


I want to split the given comma separated string into columns.

I have a table with two columns:

Example:

create table t3
(
    cola varchar,
    colb varchar
);

Insertion:

insert into t3 values('AD1','2000-01-01to2000-02-01'),
                     ('AD2','2000-03-01to2000-04-01'),
                     ('AD3','2000-05-01to2000-06-01');

Now I want prepare two comma separated strings from the given above records to like this:

str1 varchar = 'AD1,AD2,AD3';

str2 varchar = '2000-01-01to2000-02-01,2000-03-01to2000-04-01,2000-05-01to2000-06-01';

Now I want to store the comma separated string and in second string there is to for separation into two dates, want to store into the temp table.

Like this:

Expected Output:

c1       c2              c3
--------------------------------- 
AD1  2000-01-01       2000-02-01
AD2  2000-03-01       2000-04-01
AD3  2000-05-01       2000-06-01

Solution

  • You can get the output you want using:

    select cola as col1,
           cast(left(colb, 10) as date) as col2,
           cast(right(colb, 10) as date) as col2
    from t3;
    

    I have no idea why you would want to create intermediate comma-separated strings, which are not needed for the logic.