SOUNDEX (Transact-SQL)
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Warehouse i Microsoft Fabric
Returnerar en kod med fyra tecken (SOUNDEX
) för att utvärdera likheten mellan två strängar.
Transact-SQL syntaxkonventioner
Syntax
SOUNDEX ( character_expression )
Argument
character_expression
Ett alfanumeriskt uttryck teckendata. character_expression kan vara en konstant, variabel eller kolumn.
Returtyper
varchar
Anmärkningar
SOUNDEX
konverterar en alfanumerisk sträng till en kod med fyra tecken som baseras på hur strängen låter när den talas på engelska. Det första tecknet i koden är det första tecknet i character_expression, konverterat till versaler. Kodens andra till fjärde tecken är siffror som representerar bokstäverna i uttrycket. Bokstäverna A
, E
, I
, O
, U
, H
, W
och Y
ignoreras om de inte är den första bokstaven i strängen. Nolla läggs till i slutet om det behövs för att skapa en kod med fyra tecken. Mer information om SOUNDEX
-koden finns i Soundex Indexing System.
SOUNDEX
koder från olika strängar kan jämföras för att se hur lika strängarna låter när de talas. Funktionen DIFFERENCE() utför en SOUNDEX
på två strängar och returnerar ett heltal som representerar hur lika SOUNDEX
-koderna är för dessa strängar.
SOUNDEX
är sorteringskänslig. Strängfunktioner kan kapslas.
SOUNDEX-kompatibilitet
I tidigare versioner av SQL Server tillämpade funktionen SOUNDEX
en delmängd av SOUNDEX
regler. Under databaskompatibilitetsnivå 110 eller senare tillämpar SQL Server en mer fullständig uppsättning regler.
När du har uppgraderat till kompatibilitetsnivå 110 eller senare kan du behöva återskapa de index, heaps eller CHECK
begränsningar som använder funktionen SOUNDEX
.
En heap som innehåller en bevarad beräknad kolumn som definierats med
SOUNDEX
kan inte frågas förrän heapen återskapas genom att köra följande instruktion:ALTER TABLE <table> REBUILD;
CHECK
begränsningar som definierats medSOUNDEX
inaktiveras vid uppgraderingen. Om du vill aktivera villkoret kör du följande instruktion:ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL;
Index (inklusive indexerade vyer) som innehåller en bevarad beräknad kolumn som definierats med
SOUNDEX
kan inte frågas förrän indexet återskapas genom att köra följande instruktion:ALTER INDEX ALL ON <object> REBUILD;
Exempel
A. Använda SOUNDEX
I följande exempel visas funktionen SOUNDEX
och den relaterade funktionen DIFFERENCE
. I det första exemplet returneras standardvärdena SOUNDEX
för alla konsonanter. Om du returnerar SOUNDEX
för Smith
och Smythe
returneras samma SOUNDEX
resultat eftersom alla vokaler, bokstaven y
, dubbla bokstäver och bokstaven h
inte ingår.
SELECT SOUNDEX('Smith'),
SOUNDEX('Smythe');
Här är resultatuppsättningen. Giltigt för en Latin1_General
sortering.
S530 S530
B. Använd DIFFERENCE
Funktionen DIFFERENCE
jämför skillnaden i SOUNDEX
mönsterresultat. I följande exempel visas två strängar som endast skiljer sig åt i vokaler. Skillnaden som returneras är 4
, den lägsta möjliga skillnaden.
SELECT DIFFERENCE('Smithers', 'Smythers');
GO
Här är resultatuppsättningen. Giltigt för en Latin1_General
sortering.
4
I följande exempel skiljer sig strängarna åt i konsonanter. Skillnaden som returneras är därför 2
, den större skillnaden.
SELECT DIFFERENCE('Anothers', 'Brothers');
GO
Här är resultatuppsättningen. Giltigt för en Latin1_General
sortering.
2