Megosztás a következőn keresztül:


SOUNDEX (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Egy négy karakterből álló (SOUNDEX) kódot ad vissza két sztring hasonlóságának kiértékeléséhez.

Transact-SQL szintaxis konvenciói

Szintaxis

SOUNDEX ( character_expression )

Érvek

character_expression

Karakteradatok alfanumerikus kifejezése. character_expression lehet állandó, változó vagy oszlop.

Visszatérési típusok

varchar

Megjegyzések

SOUNDEX egy alfanumerikus sztringet négy karakterből álló kódmá alakít át, amely a sztring angol nyelvű beszéde alapján hangzik el. A kód első karaktere a nagybetűssé konvertált character_expressionelső karaktere. A kód második-negyedik karaktere olyan szám, amely a kifejezésben szereplő betűket jelöli. A A, E, I, O, U, H, Wés Y betűk figyelmen kívül lesznek hagyva, kivéve, ha a sztring első betűje. Ha egy négykarakteres kód létrehozásához szükséges, a végén nullák lesznek hozzáadva. További információ a SOUNDEX kódról: The Soundex Indexing System.

SOUNDEX különböző sztringek kódjai összehasonlíthatók annak megtekintéséhez, hogy a sztringek milyen hasonlóak a kimondott szöveghez. A DIFFERENCE() függvény két sztringen hajt végre SOUNDEX, és egy egész számot ad vissza, amely jelzi, hogy a SOUNDEX kódok mennyire hasonlítanak ezekhez a sztringekhez.

SOUNDEX a rendezés érzékeny. A sztringfüggvények beágyazhatók.

SOUNDEX kompatibilitás

Az SQL Server korábbi verzióiban a SOUNDEX függvény a SOUNDEX szabályok egy részét alkalmazta. A 110-es vagy újabb adatbázis-kompatibilitási szinten az SQL Server a szabályok teljesebb készletét alkalmazza.

A 110-es vagy újabb kompatibilitási szintre való frissítés után előfordulhat, hogy újra kell építenie a CHECK függvényt használó indexeket, halomokat vagy SOUNDEX korlátozásokat.

  • A SOUNDEX definiált, megőrzött számított oszlopot tartalmazó halom nem kérdezhető le, amíg a halom újra nem jön létre az alábbi utasítás futtatásával:

    ALTER TABLE <table> REBUILD;
    
  • CHECK SOUNDEX definiált korlátozások a frissítéskor le lesznek tiltva. A kényszer engedélyezéséhez futtassa a következő utasítást:

    ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL;
    
  • A SOUNDEX definiált, megőrzött számított oszlopot tartalmazó indexek (beleértve az indexelt nézeteket is) csak az alábbi utasítás futtatásával kérdezhetők le:

    ALTER INDEX ALL ON <object> REBUILD;
    

Példák

Egy. A SOUNDEX használata

Az alábbi példa a SOUNDEX függvényt és a kapcsolódó DIFFERENCE függvényt mutatja be. Az első példában a standard SOUNDEX értékek lesznek visszaadva az összes mássalhangzó esetében. A SOUNDEX és SmithSmythe visszaadása ugyanazt a SOUNDEX eredményt adja vissza, mivel az összes magánhangzó, a ybetű, a dupla betű és a hbetű nem szerepel benne.

SELECT SOUNDEX('Smith'),
       SOUNDEX('Smythe');

Itt van az eredményhalmaz. Érvényes Latin1_General rendezéshez.

S530  S530

B. A KÜLÖNBSÉG használata

A DIFFERENCE függvény a SOUNDEX mintaeredmények különbségét hasonlítja össze. Az alábbi példa két sztringet mutat be, amelyek csak magánhangzókban különböznek. A visszaadott különbség 4, a lehető legkisebb különbség.

SELECT DIFFERENCE('Smithers', 'Smythers');
GO

Itt van az eredményhalmaz. Érvényes Latin1_General rendezéshez.

4

Az alábbi példában a sztringek mássalhangzókban különböznek; ezért a visszaadott különbség 2, annál nagyobb a különbség.

SELECT DIFFERENCE('Anothers', 'Brothers');
GO

Itt van az eredményhalmaz. Érvényes Latin1_General rendezéshez.

2