Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL 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, Wa 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
SOUNDEXnelze dotazovat, dokud haldu znovu nevystavíte spuštěním následujícího příkazu:ALTER TABLE <table> REBUILD;CHECKomezení definovaná pomocíSOUNDEXjsou 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í
SOUNDEXnelze 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)