删除名称中的多余中间空格​​ - SQL

时间:2013-08-05 19:10:32

标签: sql sql-server replace sql-server-2008-r2

我有一个人名的数据集,但问题是我想当有些人在输入他们的名字时,他们会在空格键上打几次太多b / c现在我们有这个:

enter image description here

请注意名称栏中有一些名字,如John_Doe,John__Doe,John____Doe等。什么是确保每当词之间有_,1,2,3等等的最好方法。删除/修剪到只有1个空格,所以所有这些记录都将成为John_Doe。

思想?

2 个答案:

答案 0 :(得分:9)

这应该可以解决问题

DECLARE @string varchar(100)
SET @string = 'John   Doe'

SELECT string = REPLACE(REPLACE(REPLACE(@string,' ','<>'),'><',''),'<>',' ')

Replace duplicate spaces with a single space in T-SQL

答案 1 :(得分:0)

在我看来,使用REPLACE确实减慢了这个过程,特别是如果你要搜索大量数据的话。 我的建议是切断输入字符串并使用AND和LIKE。