Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách hoạt động của hàm SOUNDEX () SQL Server

Soundex là một thuật toán phiên âm để lập chỉ mục tên theo âm thanh, như được phát âm trong tiếng Anh. Nó được phát triển và cấp bằng sáng chế vào năm 1918 và 1922.

Một trong những hàm có sẵn trong SQL Server là SOUNDEX() , trả về mã Soundex cho một chuỗi nhất định.

Cú pháp

Cú pháp như sau:

SOUNDEX ( character_expression )

Trong đó character_expression là từ hoặc chuỗi mà bạn muốn có mã Soundex. Đây có thể là một hằng số, một biến hoặc một cột.

SOUNDEX() hàm nhạy cảm với đối chiếu và các hàm chuỗi có thể được lồng vào nhau.

Mã Soundex

Như đã đề cập, SOUNDEX() hàm trả về mã Soundex cho chuỗi đã cho. Mã Soundex là một mã gồm bốn ký tự dựa trên âm thanh của chuỗi khi được nói. Dưới đây là ví dụ về mã Soundex:

S600

Đây là cách mã Soundex được tạo:

  • Ký tự đầu tiên của mã là ký tự đầu tiên của chuỗi, được chuyển đổi thành chữ hoa. Vì vậy, trong ví dụ trên, chúng ta biết rằng chuỗi bắt đầu bằng chữ S (viết thường hoặc viết hoa).
  • Các ký tự thứ hai đến thứ tư của mã là các số đại diện cho các chữ cái trong biểu thức.
  • Các chữ cái A, E, I, O, U, H, W và Y bị bỏ qua trừ khi chúng là chữ cái đầu tiên của chuỗi.
  • Các số 0 được thêm vào cuối nếu cần thiết để tạo ra mã bốn ký tự.

Ví dụ

Dưới đây là một ví dụ về cách lấy chuỗi Soundex từ một chuỗi:

SELECT SOUNDEX('Sure');

Kết quả:

S600

Vì vậy, chúng ta có thể thấy rằng từ Sure có mã Soundex là S600 .

Ví dụ về hai từ phù hợp

Dưới đây là một ví dụ về trường hợp hai từ chia sẻ cùng một mã Soundex (vì chúng phát âm giống nhau):

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

Kết quả:

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

Dưới đây là một số ví dụ đối sánh chính xác hơn:

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

Kết quả:

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

Ví dụ về các từ không khớp

Dưới đây là một ví dụ về việc hai từ nghe không giống nhau và do đó, chúng có mã Soundex khác nhau:

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

Kết quả:

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

Các từ có cách viết khác nhau

Một số từ có cách viết khác nhau tùy thuộc vào quốc gia bạn đến từ. Những từ như vậy sẽ dùng chung mã Soundex:

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

Kết quả:

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

Cùng một âm thanh, mã Soundex khác nhau

Đôi khi, hai từ nghe giống nhau, nhưng chúng có mã Soundex khác nhau. Lý do phổ biến nhất cho điều này là chúng bắt đầu bằng một chữ cái khác (một chữ cái sử dụng một chữ cái im lặng). Như đã đề cập, mã Soundex bắt đầu bằng chữ cái đầu tiên của chuỗi (được chuyển đổi thành chữ hoa). Do đó, nếu bạn có hai từ được phát âm giống hệt nhau, nhưng chúng bắt đầu bằng một chữ cái khác, chúng sẽ có mã Soundex khác.

Dưới đây là một số ví dụ:

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

Kết quả:

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

Các cặp trong ví dụ này có mã Soundex khác nhau chỉ vì chữ cái đầu tiên của chúng khác nhau.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Phân tích MS SQL Server cho những người lần đầu tiên nhìn thấy nó

  2. phân tách các giá trị được phân tách bằng dấu phẩy và lưu trữ trong bảng trong máy chủ sql

  3. Cách tính tổng số giờ đi lại giữa thành phố x, y và ngược lại

  4. Hướng dẫn về SQL (DDL, DML) về ví dụ về phương ngữ MS SQL Server

  5. Sự khác biệt giữa Float và Numeric / Decimal trong SQL Server - SQL Server / T-SQL Tutorial Part 33