SQL索引能否区分'Doe,John'(1个空格)和'Doe,John'(2个空格)?
在SQL索引能否区分'Doe,John'(1个空格)和'Doe,John'(2个空格)?,sql,Sql,在人物数据库中,有一个包含作者姓名的表,该表是从几个其他数据库中引用的。作者名称必须是唯一的 不要问我怎么做的,但是有人设法在作者姓名中为几乎相同的术语创建了不同的条目。例如,有一些记录x、y、z指向的Doe,John(一个空格),以及不同记录p、q、r指向的Doe,John(两个空格)的不同条目 我们想清理一下。现在,我们可以使用等价物。也就是说,如果我们有作者Doe,Johannes,他是同一个人alsDoe,John,我们可以使他们等价,一切都会好的。(也就是说,如果你搜索作者Doe,Jo
人物
数据库中,有一个包含作者姓名
的表,该表是从几个其他数据库中引用的。作者名称必须是唯一的
不要问我怎么做的,但是有人设法在作者姓名
中为几乎相同的术语创建了不同的条目。例如,有一些记录x、y、z指向的Doe,John
(一个空格),以及不同记录p、q、r指向的Doe,John
(两个空格)的不同条目
我们想清理一下。现在,我们可以使用等价物。也就是说,如果我们有作者Doe,Johannes,他是同一个人alsDoe,John
,我们可以使他们等价,一切都会好的。(也就是说,如果你搜索作者Doe,John,你也会找到Doe,Johannes,反之亦然。)
问题是SQL将Doe,John
和Doe,John
视为相同的术语。因此拒绝将它们等效,因为这违反了独特的要求
解决这一问题的方法是什么(除了手动清洁,逐记录)
(我检查了dba.stackexchange,但这里有更多关于SQL的内容。)开始时,您不应该将名字和姓氏存储在同一列中。但是是的,
'ab'
被认为与'ab'
不同,在什么情况下,您会发现“SQL将Doe,John和Doe,John
视为相同的术语”?您能否将当前指向Doe,John
(两个空格)的记录更新为指向Doe,John
(一个空格)?然后删除Doe,John
(两个空格)?@a_horse_和_no_name可以指出MSSQL服务器中的什么设置可以打开或关闭区分?没有此设置。这就是它开箱即用的工作方式@user9601310是的,我们可以,但这需要大量的手工工作。我在寻找一种更聪明的方法。