
A példához szükséges a MailDb adatbázis, melyet a mellékelt Run_script.cmd BATCH állomány lefuttatásával hozhatunk létre. A MailDb.sql script 5. sorában adja meg helyesen a létrehozandó adatbázisfájlok mappájának nevét és elérési útvonalát.
A megoldás tehát egyetlen SQL-utasítás, melyben fel kell használnunk két beépített metódust. Annak eldöntésére, hogy melyik e-mail cím melyik tartományba tartozik, először ki kell hámoznunk a címből a ’@’ karakter utáni karakterláncot.
A ’@’ karakter helyének meghatározásához a beépített CHARINDEX függvényt használjuk fel, melynek első paraméterében meg kell adni a keresendő részláncot, második paramétereként a forrás karakterláncot, jelen esetben a címeket tartalmazó oszlopnevet.
CHARINDEX('@',mail_address)
A ’@’ karakter utáni láncrész levágásához a SUBSTRING függvény használatos, első paraméterében a forrás karakterlánccal, második paraméterében a kezdő pozícióval, és harmadik paraméterében a végpozícióval.
substring(mail_address,CHARINDEX('@',mail_address)+1,(len(mail_address)-1))
Ezek ismeretében már csak össze kell állítanunk egy SQL-utasítást, melyet megadhatunk egy TADODataSet komponensnek CommandText property-jében.
select substring(mail_address,CHARINDEX('@',mail_address)+1,(len(mail_address)-1)),count(*) from table1
group by substring(mail_address,CHARINDEX('@',mail_address)+1,(len(mail_address)-1))
Az utasítás megadásával a második DBGrid kontrolban megjelennek a kért adatok. Első oszlopban az e-mail címek ’@’ karakter utáni részével, és második oszlopban a darabszámmal.