Skip site navigation (1) Skip section navigation (2)

Re: How to find the position of a characted in a string

From: ss_postgres <ss(dot)postgres(at)gmail(dot)com>
To: "Pawel Socha" <pawel(dot)socha(at)gmail(dot)com>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: How to find the position of a characted in a string
Date: 2008-12-08 10:34:04
Message-ID: 6c1264780812080234k6c249d9aje780f312c8adff4@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-admin
On Mon, Dec 8, 2008 at 5:44 PM, Pawel Socha <pawel(dot)socha(at)gmail(dot)com> wrote:

> 2008/12/8 ss_postgres <ss(dot)postgres(at)gmail(dot)com>:
>  > Hi,
> >
> > I am trying to find the position of a character in a string which appears
> > multiple times.
> >
> > The POSITION function returns the position of the character when it first
> > occurs.
> >
> > For eg:
> >
> > select position ( ' ' in 'Hi How are you');
> >
> > This returns the result as "3".
> >
> >
> > But i need to result to be
> > 3
> > 7
> > 11
> >
> >
> > Can anyone please let me know what would be the best way to do this.
> >
> > Thanks
> >
>
> My first things:
>
> merlin=> select distinct(x.case) from (select (case when substring('Hi
> How are you' from r for 1) = ' ' then r else null  end)  from
> generate_series(0, length('Hi How are you')) as r) as x;
>  case
> ------
>    3
>    7
>   11
>
>
> --
> Pawel Socha
>

Hi Pawal,

Thanks a lot.

Suppose i need to do the same thing on a column in a table, can you please
let me know how to write the query.

Also how to eliminate the null result at the end?  For eg: Running the above
query gives 4 rows, the last row with null value.

Thanks for your help.

In response to

Responses

pgsql-admin by date

Next:From: Rafael DomicianoDate: 2008-12-08 13:04:45
Subject: Re: Vacuum Problems
Previous:From: AmitKumar JainDate: 2008-12-08 09:12:45
Subject: Re: How can we see details of function in psql prompt

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group