SQL SOUNDEX() 函数
SQL 的 SOUNDEX() 函数用于检索字符串值的 Soundex 字符串。
它返回一个字符串的 Soundex 值。Soundex 字符串是一种根据英语发音进行姓名索引的语音算法。两个几乎相同的字符串应该具有相同的 Soundex 字符串。标准 Soundex 字符串长度为四个字符。
SOUNDEX() 函数接受一个字符串作为参数。如果我们将一个 NULL 值作为参数传递给该函数,则其返回一个 NULL 值。
注意 − 给定字符串中的所有非字母字符都将被忽略。所有国际字母字符在 A-Z 范围之外被视为元音字符。
语法
SQL SOUNDEX() 函数的语法如下所示 −
SOUNDEX(exp)
参数
- exp − 这是一个表达式,用于检索Soundex字符串。
返回值
此函数返回Soundex字符串。
示例
在以下示例中,我们使用 SOUNDEX() 函数来检索字符串 ‘Hello World’ 的Soundex字符串。
SELECT SOUNDEX('Hello World');
输出
执行以上程序后,将产生以下输出结果 –
+------------------------+
| SOUNDEX('Hello World') |
+------------------------+
| H4643 |
+------------------------+
示例
以下是另一个使用 SOUNDEX() 函数的示例,我们要尝试检索字符串 ‘Tutorialspoint’ 的 Soundex 字符串。
SELECT SOUNDEX('TutorialsPoint');
输出
以下是上述语句的输出结果 –
+---------------------------+
| SOUNDEX('TutorialsPoint') |
+---------------------------+
| T642153 |
+---------------------------+
示例
如果我们将一个数值作为参数传递给这个方法,它会在输出中返回一个空字符串或零(0000)。
在这个程序中,我们将一个数值123212传递给 SOUNDEX() 函数来获取它的Soundex字符串。
SELECT SOUNDEX(123212);
输出
上述SQL语句产生以下输出 –
+-----------------+
| SOUNDEX(123212) |
+-----------------+
| 0000 |
+-----------------+
示例
如果我们将空字符串(”)传递给SOUNDEX()函数,该函数将返回一个空字符串或输出中的零(0000)。
SELECT SOUNDEX('');
输出
执行以上查询后,它产生以下输出结果−
+-------------+
| SOUNDEX('') |
+-------------+
| |
+-------------+
示例
在下面的示例中,我们将 NULL 值作为参数传递给 SOUNDEX() 函数。
SELECT SOUNDEX(NULL);
输出
以下是上述查询的输出结果 –
+------------------------------+
| SOUNDEX(NULL) |
+------------------------------+
| NULL |
+------------------------------+
示例
您可以将表列作为参数传递给 SOUNDEX() 函数以检索Soundex字符串。假设我们使用以下 CREATE 语句创建了一个名为 Customers 的表 –
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2));
现在,让我们使用以下的INSERT语句向Customers表中插入四条记录。
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Khilan', 25, 'Delhi', 1500.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'kaushik', 23, 'Kota', 2000.00 );
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Chaitali', 25, 'Mumbai', 6500.00 );
下面的查询显示了 ADDRESS 列的 Soundex 值,该列位于 Customers 表中。
SELECT ID, NAME, SOUNDEX(ADDRESS) FROM CUSTOMERS;
输出
上述SQL查询生成以下输出 –
+----+----------+------------------+
| ID | NAME | SOUNDEX(ADDRESS) |
+----+----------+------------------+
| 1 | Ramesh | A5313 |
| 2 | Khilan | D400 |
| 3 | kaushik | K300 |
| 4 | Chaitali | M100 |
+----+----------+------------------+