如何在名称列上使用类似查询进行分组

问题描述 投票:0回答:1

我需要从 mssql 表创建一个记录数据表,其中一列是有时拼写错误等的名称。这些记录是通过数据捕获器误读或其他原因的电子表格导入的。在VS中我可以选择“.”之后的所有字符。例如 & 对此进行 Like 查询。我不知道如何在 MSSQL 中做到这一点,因为这些是许多比赛的结果,相同的姓氏会出现多次,因此一旦姓氏被分组并再次遇到,就不要再次对其进行分组。例如“van der Merwe”、“van de Merwe”可以是同一个人或不同的人。

虽然作为一名自学的程序员并且之前通过阅读其他问题获得过帮助,但我不知道在这种情况下从哪里开始。如果有人遇到并解决了类似的需求,我真的很感激能为我指明最终能找到解决方案的方向。

sql sql-server
1个回答
0
投票

您听说过 SOUNDEX 功能吗?

截图看看,soundex是如何使用的

如果您看到上面的屏幕截图,“van der Merwe”和“van de Merwe”都有相同的输出,即 V500。

CREATE TABLE EMPLOYEE (
  empId int,
  name varchar(15),
  dept varchar(10)
);

-- insert
INSERT INTO EMPLOYEE(empId,name,dept) VALUES (1, 'van der Merwe', 'Sales');
INSERT INTO EMPLOYEE(empId,name,dept) VALUES (2, 'van de Merwe', 'Accounting');
INSERT INTO EMPLOYEE(empId,name,dept) VALUES (3, 'Ava', 'Sales');

-- fetch 
SELECT *,soundex(name) soundcode FROM EMPLOYEE;
© www.soinside.com 2019 - 2024. All rights reserved.