Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Zwraca czteroznakowy kod (SOUNDEX), aby ocenić podobieństwo dwóch ciągów.
Transact-SQL konwencje składni
Składnia
SOUNDEX ( character_expression )
Argumenty
character_expression
Alfanumeryczne wyrażenie danych znaków. character_expression może być stałą, zmienną lub kolumną.
Typy zwracane
varchar
Uwagi
SOUNDEX konwertuje ciąg alfanumeryczny na czteroznakowy kod oparty na tym, jak ciąg brzmi w języku angielskim. Pierwszym znakiem kodu jest pierwszy znak character_expression, przekonwertowany na wielkie litery. Drugie do czwartego znaku kodu to cyfry reprezentujące litery w wyrażeniu. Litery A, E, I, O, U, H, Wi Y są ignorowane, chyba że są pierwszą literą ciągu. Zera są dodawane na końcu, jeśli to konieczne, aby utworzyć czteroznaczny kod. Aby uzyskać więcej informacji na temat kodu SOUNDEX, zobacz Soundex Indexing System.
SOUNDEX kody z różnych ciągów można porównać, aby zobaczyć, jak podobny jest dźwięk ciągów podczas wypowiedzi. Funkcja DIFFERENCE() wykonuje SOUNDEX na dwóch ciągach i zwraca liczbę całkowitą reprezentującą, jak podobne są kody SOUNDEX dla tych ciągów.
SOUNDEX jest rozróżniana sortowanie. Funkcje ciągów można zagnieżdżać.
Zgodność z funkcją SOUNDEX
W poprzednich wersjach programu SQL Server funkcja SOUNDEX zastosowała podzbiór reguł SOUNDEX. W obszarze zgodność bazy danych poziom 110 lub wyższy program SQL Server stosuje bardziej kompletny zestaw reguł.
Po uaktualnieniu do poziomu zgodności 110 lub nowszego może być konieczne ponowne skompilowanie indeksów, stert lub CHECK ograniczeń korzystających z funkcji SOUNDEX.
Sterta zawierająca utrwałą obliczoną kolumnę zdefiniowaną za pomocą
SOUNDEXnie można wykonywać zapytań, dopóki sterta nie zostanie skompilowana, uruchamiając następującą instrukcję:ALTER TABLE <table> REBUILD;CHECKograniczenia zdefiniowane za pomocąSOUNDEXsą wyłączone po uaktualnieniu. Aby włączyć ograniczenie, uruchom następującą instrukcję:ALTER TABLE <table> WITH CHECK CHECK CONSTRAINT ALL;Indeksy (w tym widoki indeksowane), które zawierają utrwalone obliczone kolumny zdefiniowane za pomocą
SOUNDEXnie można wykonywać zapytań, dopóki indeks nie zostanie skompilowany, uruchamiając następującą instrukcję:ALTER INDEX ALL ON <object> REBUILD;
Przykłady
A. Korzystanie z funkcji SOUNDEX
W poniższym przykładzie przedstawiono funkcję SOUNDEX i powiązaną funkcję DIFFERENCE. W pierwszym przykładzie standardowe wartości SOUNDEX są zwracane dla wszystkich spółgłosek. Zwracanie SOUNDEX dla Smith i Smythe zwraca ten sam wynik SOUNDEX, ponieważ wszystkie śluby, litera y, podwójne litery i litera hnie są uwzględniane.
SELECT SOUNDEX('Smith'),
SOUNDEX('Smythe');
Oto zestaw wyników. Prawidłowe sortowanie Latin1_General.
S530 S530
B. Użyj RÓŻNICY
Funkcja DIFFERENCE porównuje różnicę wyników wzorca SOUNDEX. W poniższym przykładzie przedstawiono dwa ciągi, które różnią się tylko w przypadku ślubów. Zwracana różnica jest 4, najniższą możliwą różnicą.
SELECT DIFFERENCE('Smithers', 'Smythers');
GO
Oto zestaw wyników. Prawidłowe sortowanie Latin1_General.
4
W poniższym przykładzie ciągi różnią się spółgłoskami; dlatego zwracana różnica jest 2, tym większa różnica.
SELECT DIFFERENCE('Anothers', 'Brothers');
GO
Oto zestaw wyników. Prawidłowe sortowanie Latin1_General.
2