| From: | Bricklen Anderson <banderson(at)presinet(dot)com> |
|---|---|
| To: | Mauro Bertoli <bertolima(at)yahoo(dot)it> |
| Cc: | pgsql-sql(at)postgresql(dot)org |
| Subject: | Re: Get max value from an comma separated string |
| Date: | 2006-06-05 14:49:02 |
| Message-ID: | 4484445E.2000006@presinet.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
Mauro Bertoli wrote:
> Hi, I've a field that contain values-comma-separated
> like
> A) 1;2;3;;5 -- ;2;;4;5
> but also
> B) 12;34;18
> how I can get the max value?
> For A I tried:
> SELECT max(array_upper(string_to_array(answer,';'),1))
> FROM values;
> and work fine, but for B case I don't find a solution
> like
> SELECT max(string_to_array(answer,';')) FROM values;
>
> Any ideas?
> Thanks for any hint
>
You could try rearranging the values into rows, like so:
CREATE OR REPLACE FUNCTION text2rows (TEXT,TEXT) RETURNS SETOF TEXT AS $$
SELECT (string_to_array($1, $2))[x.i]
FROM generate_series(1,array_upper(string_to_array($1,$2),1)) AS x(i);
$$ language sql strict;
select max(val)
from (SELECT text2rows(answer,';') as val FROM answer) as t;
| From | Date | Subject | |
|---|---|---|---|
| Next Message | operationsengineer1 | 2006-06-06 00:17:58 | How To Exclude True Values |
| Previous Message | Andrew Sullivan | 2006-06-05 11:10:07 | Re: Using Query Result in WHERE Clause |