Re: SQL command speed - Mailing list pgsql-sql

From Stephan Szabo
Subject Re: SQL command speed
Date
Msg-id 024001bfc114$b25c18b0$0c64010a@kick.com
Whole thread Raw
In response to SQL command speed  (Kate Collins <klcollins@wsicorp.com>)
List pgsql-sql
I didn't see a function that would do what you wanted to do, but
I guess you could do the trimming in a plpgsql function though...
(Since I don't have a 7.0 system to test with, these were only tested
on an old 6.5.1 database)...

create function trimthe(text) returns text as '
begin
if (substr($1, 1, 4) = \'The \' thenreturn substr($1, 5);
end if;
-- add other prefix checks here...
return $1;
end;
' language 'plpgsql';

and then select ordering by that...  

I guess a more general function could be:
create function ltrimstr(text, text) returns text as '
beginif position($2 in $1) = 1 then return substr($1, char_length($2)+1);
end if;
return $1;
end;
' language 'plpgsql';


----- Original Message ----- 
From: "Ross J. Reedstrom" <reedstrm@wallace.ece.rice.edu>
To: <pgsql-sql@postgresql.org>
Sent: Thursday, May 18, 2000 1:39 PM
Subject: Re: [SQL] SQL command speed


> Hey crew:
> I've got a relatively simple SQL problem. In a db backed web site
> we're building, I'd like to fill a dropdown box with the contents of a
> validation table, in this case research institutions. I want to sort them
> alphabetically, but using "library rules": i.e. skip inital articles,
> since we've a few 'The University of Foo" and "The Johns Hopkins
> University", for example.
> 
> I thought I had it with this SQL:
> 
> SELECT InstName from Institutions ORDER BY ltrim (InstName, 'The');
> 
> Looked good, until I found 'Texas A&M University' sorting below York.
> 
> Seems ltrim() removes inital charaters from the set of charaters, not
> inital strings, so I was sorting on 'xas A&M University'
> 
> Anyone have some magic solution for this?




pgsql-sql by date:

Previous
From: "Ross J. Reedstrom"
Date:
Subject: Library sort order (was Re: SQL command speed)
Next
From: Christopher Sawtell
Date:
Subject: Re: Re[2]: lower() for varchar data by creating an index