Quelle est l'instruction SQL la plus courte et/ou la plus efficace pour trier une table avec une colonne d'adresse électronique par son fragment de nom de DOMAINE ?
Il s'agit essentiellement d'ignorer ce qui se trouve avant "@" dans les adresses électroniques et de ne pas tenir compte de la casse. Ignorons les noms de domaine internationalisés pour cette fois.
Cible : mySQL, MSSQL, Oracle
Les données de l'échantillon de TABLE1
id name email
------------------------------------------
1 John Doe johndoe@domain.com
2 Jane Doe janedoe@helloworld.com
3 Ali Baba ali@babaland.com
4 Foo Bar foo@worldof.bar.net
5 Tarrack Ocama me@am-no-president.org
Commander par e-mailSELECT * FROM TABLE1 ORDER BY EMAIL ASC
id name email
------------------------------------------
3 Ali Baba ali@babaland.com
4 Foo Bar foo@worldof.bar.net
2 Jane Doe janedoe@helloworld.com
1 John Doe johndoe@domain.com
5 Tarrack Ocama me@am-no-president.org
Ordre par domaineSELECT * FROM TABLE1 ORDER BY ?????? ASC
id name email
------------------------------------------
5 Tarrack Ocama me@am-no-president.org
3 Ali Baba ali@babaland.com
1 John Doe johndoe@domain.com
2 Jane Doe janedoe@helloworld.com
4 Foo Bar foo@worldof.bar.net
EDITAR:
Je ne demande pas une seule instruction SQL qui fonctionnera sur les 3 moteurs SQL ou plus. Toute contribution est la bienvenue :)