All articles

Case insensitive keresés firebirdben

Published 2007-03-03 - Last modified 2007-03-03

Original: https://soci.hu/blog/index.php/2007/03/03/case-insensitive-kereses-firebirdben/

Mostanában néha ránézek a firebirdre, mert a céges programban ez működik kliens oldalon.

Most pl. case insensitive keresésre van szükség, file nevek összehasonlítása miatt, de természetesen csak indexxel gyorsított megoldás érdekel.

Úgy látom a fb alapban nem tud olyat, mint az SQL Server, hogy egy adott ország szerinti rendezést case insensitive módon végezze el. A feladatot indexelt, számított oszloppal lehet megoldani.

Még nem próbáltam ki, majd ha a kolléga beépíti, elmesélem megy-e rendesen.

In Firebird 2.0 it is possible to create a so-called “Expression Index” on an UPPER() function call:
CREATE INDEX IDX_PERSON_LASTNAME ON PERSONS COMPUTED BY (UPPER (LAST_NAME COLLATE DE_DE))

From now on, it is possible to search using exactly the same expression:
SELECT * FROM PERSONS WHERE UPPER (LAST_NAME COLLATE DE_DE) = UPPER(:SEARCH_STRING COLLATE DE_DE)