text+number, find largest entry

From: gabor <gabor(at)nekomancer(dot)net>
To: pgsql-sql(at)postgresql(dot)org
Subject: text+number, find largest entry
Date: 2006-09-11 23:34:38
Message-ID: 4505F28E.6060606@nekomancer.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

hi,

i have a table, where there is a varchar(500) column,
which contains data that is strangely formatted:

it starts with letters, and ends with a number.
for example:

xyz001
xyz002
xyz044
xyz1243
abc01
abc993
abc2342

and so on.

now, for a given text-prefix (for example "xyz"), i need to
find the record with the largest "numeric component".

so for example, for the text-prefix "xyz", the corresponding entry would
be "xyz1243".

this lookup does not have to be especially fast.

i realize that i could add some additional columns to this table,
and store the text-part and the numeric-part separately,

but first i would prefer a non-alter-table solution :)

currently my only idea is to find the longest entry, check how many of
them are, and then find the ones whose numeric part starts with "9"
etc... ugly, but should work.

are there any better ways to do it?

thanks,
gabor

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2006-09-12 00:15:20 Re: text+number, find largest entry
Previous Message Emi Lu 2006-09-11 20:14:04 Re: case insensitive regex clause with some latin1 characters