I assume that you want to do this within the database, i.e. with a query.
You would need to use a function, but I don't think a builtin function would
do it.
Try:
CREATE FUNCTION email_order (text) RETURNS text AS '
select substr ($1, strpos ($1, ''@'') + 1) || substr ($1, 1, strpos ($1,
''@'') -1)
' LANGUAGE 'sql';
Then do:
SELECT ..... FROM ... ORDER BY email_order (fieldname);
I am assuming text datatype; substitute as appropriate.
That's doubled single quotes around the @ symbol, by the way.
> -----Original Message-----
> From: Hervé Piedvache [SMTP:herve@elma.fr]
> Sent: Thursday, May 10, 2001 1:38 PM
> To: pgsql-sql@postgresql.org
> Subject: Order by email address by domain ?
>
> Hi,
>
> I just want to order by a listing of email address by domain like :
>
> toto@aol.com
> tutu@aol.com
> toto@be.com
> tutu@be.com
> toto@yahoo.com
>
> Is it possible and how ?
>
> Thanks !
> --
> Hervé Piedvache
>
> Elma Ingenierie Informatique
> 6, rue du Faubourg Saint-Honoré
> F-75008 - Paris - France
> http://www.elma.fr
> Tel: +33-1-44949901
> Fax: +33-1-44949902
> Email: herve@elma.fr
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://www.postgresql.org/search.mpl