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

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

我有一个人名数据集,但问题是我想当有些人输入他们的名字时,他们按空格键的次数太多了,现在我们有这个:

enter image description here

请注意名称列中有一些名称,例如 John_Doe、John__Doe、John____Doe 等。确保单词之间(无论是 1、2、3 等)之间有 _ 的最佳方法是什么?删除/修剪为仅 1 个空格,因此所有这些记录都将成为 John_Doe。

想法?

最佳答案

这应该可以解决问题

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

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

Replace duplicate spaces with a single space in T-SQL

关于sql - 删除名称中多余的中间空格 - SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18065855/

相关文章:

linux - 在 linux 中搜索和替换所有文件中的代码块

sql - 执行包含动态 SQL Sybase 的存储过程

sql - T-Sql 获取行数相同的值

c# - 如何使用 where @para1 = @para2 等参数执行 Sql server 过程

javascript - 替换希腊数字格式 (1.000,00)

Javascript字符串替换某些字符

php - 在一页中显示所有用户帖子,但查询速度太慢

SQL Server sp_ExecuteSQL 和执行计划

sql - 如何将单个列值拆分为多个列值?

sql-server - T-SQL 确定性 INT 转换