SOUNDEX (Transact-SQL)
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Platform Platform System (PDW)
koncový bod SQL Analytics ve službě Microsoft Fabric
Warehouse v Microsoft Fabric
Vrátí čtyřznakový kód (SOUNDEX
), který vyhodnotí podobnost dvou řetězců.
Syntax
SOUNDEX ( character_expression )
Argumenty
character_expression
Alfanumerický výraz znakových dat. character_expression může být konstanta, proměnná nebo sloupec.
Návratové typy
varchar
Poznámky
SOUNDEX
převede alfanumerický řetězec na čtyřznakový kód, který je založený na tom, jak řetězec zní při mluvené angličtině. První znak kódu je první znak character_expression, převeden na velká písmena. Druhým až čtvrtým znakem kódu jsou čísla, která představují písmena ve výrazu. Písmena A
, E
, I
, O
, U
, H
, W
a Y
se ignorují, pokud nejsou prvním písmenem řetězce. Nuly se přidají na konec v případě potřeby k vytvoření čtyřznakového kódu. Další informace o SOUNDEX
kódu naleznete v tématu Systém indexování Soundex.
SOUNDEX
kódy z různých řetězců lze porovnat, abyste viděli, jak podobné řetězce zní při mluvené řeči. Funkce DIFFERENCE() provede SOUNDEX
na dvou řetězcích a vrátí celé číslo, které představuje, jak podobné kódy SOUNDEX
jsou pro tyto řetězce.
SOUNDEX
je kolace citlivá. Řetězcové funkce je možné vnořit.
Kompatibilita SOUNDEX
V předchozích verzích SQL Serveru použila funkce SOUNDEX
podmnožinu pravidel SOUNDEX
. V rámci úrovně kompatibility databáze 110 nebo vyšší použije SQL Server kompletní sadu pravidel.
Po upgradu na úroveň kompatibility 110 nebo vyšší možná budete muset znovu sestavit indexy, haldy nebo CHECK
omezení, která používají funkci SOUNDEX
.
Haldu, která obsahuje trvalý počítaný sloupec definovaný s
SOUNDEX
nelze dotazovat, dokud haldu znovu nevystavíte spuštěním následujícího příkazu:ALTER TABLE <table> REBUILD;
CHECK
omezení definovaná pomocíSOUNDEX
jsou při upgradu zakázaná. Pokud chcete omezení povolit, spusťte následující příkaz:ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL;
Indexy (včetně indexovaných zobrazení), které obsahují trvalý počítaný sloupec definovaný pomocí
SOUNDEX
nelze dotazovat, dokud index znovu nevystavíte spuštěním následujícího příkazu:ALTER INDEX ALL ON <object> REBUILD;
Příklady
A. Použití FUNKCE SOUNDEX
Následující příklad ukazuje funkci SOUNDEX
a související DIFFERENCE
funkci. V prvním příkladu se pro všechny souhlásky vrátí standardní SOUNDEX
hodnoty. Vrácení SOUNDEX
pro Smith
a Smythe
vrátí stejný SOUNDEX
výsledek, protože nejsou zahrnuty všechny samohlásky, písmeno y
, dvojitá písmena a písmeno h
.
SELECT SOUNDEX('Smith'),
SOUNDEX('Smythe');
Tady je sada výsledků. Platné pro kolaci Latin1_General
.
S530 S530
B. Použití rozdílu
Funkce DIFFERENCE
porovnává rozdíl výsledků vzorů SOUNDEX
. Následující příklad ukazuje dva řetězce, které se liší pouze ve samohláskách. Vrácený rozdíl je 4
, nejnižší možný rozdíl.
SELECT DIFFERENCE('Smithers', 'Smythers');
GO
Tady je sada výsledků. Platné pro kolaci Latin1_General
.
4
V následujícím příkladu se řetězce liší v souhláskách; proto je vrácen rozdíl 2
, větší rozdíl.
SELECT DIFFERENCE('Anothers', 'Brothers');
GO
Tady je sada výsledků. Platné pro kolaci Latin1_General
.
2
Související obsah
-
ROZDÍL (Transact-SQL) -
řetězcové funkce (Transact-SQL) - úrovně kompatibility
ALTER DATABASE (Transact-SQL)