Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как работи функцията SOUNDEX() на SQL Server

Soundex е фонетичен алгоритъм за индексиране на имена по звук, както се произнася на английски. Той е разработен и патентован през 1918 и 1922 г.

Една от функциите, налични в SQL Server, е SOUNDEX() функция, която връща кода на Soundex за даден низ.

Синтаксис

Синтаксисът е така:

SOUNDEX ( character_expression )

Където character_expression е думата или низът, за който искате Soundex кода. Това може да бъде константа, променлива или колона.

SOUNDEX() функцията е чувствителна към съпоставяне и функциите на низове могат да бъдат вложени.

Кодът на Soundex

Както споменахме, SOUNDEX() функцията връща Soundex кода за дадения низ. Кодът на Soundex е код от четири знака, който се основава на това как низът звучи, когато се говори. Ето пример за Soundex код:

S600

Ето как се изгражда Soundex код:

  • Първият знак на кода е първият знак от низа, преобразуван в главни букви. Така че в горния пример знаем, че низът започва с буквата S (малка или главна).
  • От втория до четвъртия знак в кода са числа, които представляват буквите в израза.
  • Буквите A, E, I, O, U, H, W и Y се игнорират, освен ако не са първата буква от низа.
  • В края се добавят нули, ако е необходимо, за да се създаде код от четири знака.

Пример

Ето пример за извличане на Soundex низ от низ:

SELECT SOUNDEX('Sure');

Резултат:

S600

Така че можем да видим, че думата Sure има Soundex код S600 .

Пример за две съвпадащи думи

Ето пример за това, когато две думи споделят един и същ код на Soundex (защото звучат еднакво):

SELECT 
    SOUNDEX('Sure') AS Sure, 
    SOUNDEX('Shore') AS Shore;

Резултат:

Sure  Shore
----  -----
S600  S600

Ето още няколко примера за точно съвпадение:

SELECT 
    SOUNDEX('Dam') AS Dam,
    SOUNDEX('Damn') AS Damn,
    SOUNDEX('Too') AS Too,
    SOUNDEX('Two') AS Two;

Резултат:

Dam   Damn  Too   Two 
----  ----  ----  ----
D500  D500  T000  T000

Пример за думи, които не съвпадат

Ето пример за това, когато две думи не звучат еднакво и следователно имат различни Soundex кодове:

SELECT 
    SOUNDEX('Water') AS Water, 
    SOUNDEX('Coffee') AS Coffee;

Резултат:

Water  Coffee
-----  ------
W360   C100

Думи с различен правопис

Някои думи имат различен правопис в зависимост от това от коя държава сте. Такива думи ще споделят един и същ Soundex код:

SELECT 
  SOUNDEX('Flavor') AS 'Flavor',
  SOUNDEX('Flavour') AS 'Flavour';

Резултат:

Flavor  Flavour
------  -------
F416    F416

Същият звук, различен Soundex код

Понякога две думи звучат еднакво, но имат различни Soundex кодове. Най-честата причина за това е, че те започват с различна буква (човек използва тиха буква). Както споменахме, кодът на Soundex започва с първата буква на низа (преобразувана в главни букви). Следователно, ако имате две думи, които се произнасят абсолютно еднакво, но започват с различна буква, те ще имат различен Soundex код.

Ето няколко примера:

SELECT
    SOUNDEX('Hole') AS 'Hole',
    SOUNDEX('Whole') AS 'Whole',
    SOUNDEX('Our') AS Our,
    SOUNDEX('Hour') AS Hour;

Резултат:

Hole  Whole  Our   Hour
----  -----  ----  ----
H400  W400   O600  H600

Двойките в този пример имат различни Soundex кодове само защото първата им буква е различна.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Внедряване на пейджинг с помощта на OFFSET FETCH NEXT в SQL Server

  2. 5 SQL синтаксис и принципа на заявки за по-добро наблюдение на базата данни

  3. Spotlight Cloud Basic:Най-добрият безплатен инструмент за наблюдение на производителността на базата данни

  4. Преобразуване на ‘time’ в ‘datetime2’ в SQL Server (T-SQL примери)

  5. Как да направите заявка с group_concat в sql сървър