On Mon, Apr 09, 2001 at 06:05:55PM +0100, Tim Johnson wrote:
> Hi,
>
> I have postgres 6.x (where x is something).
>
> I have the following list of data
>
> data
> --------
> ABC*
> ABC
> ABC-
...
> what I want to do is 'select distinct(data) [ignoring non alphanumeric
> characters] order by data'
somewhere I use the following, which might be adapted to do what you
want. I am sure there are more elegant ways of doing this, though.
create function ComparisonString(text) returns text as ' declare t text; r text; c char; ns bool; begin
if$1 is null then return NULL; end if; t = lower(trim(both $1)); r = ''''; ns = false; for i in 1 ..
char_length(t)loop c = substring(t from i for 1); if c = '' '' then if ns then r = r || '' '';
end if; ns = false; else if position(c in ''abcdefghijklmnopqrstuvwxyz0123456789'') > 0 then
r= r || c; ns = true; end if; end if; end loop; return trim(both r); end;
' language 'plpgsql' with (IsCachable);
Albert.