【问题标题】:Remove Excess Middle Spaces in Name - SQL删除名称中多余的中间空格 - SQL
【发布时间】:2013-08-06 14:44:28
【问题描述】:

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

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

想法?

【问题讨论】:

  • SQL 只是 结构化查询语言 - 许多数据库系统使用的语言,但不是数据库产品... 字符串操作等许多事情高度特定于供应商 - 所以我们真的需要知道您使用的是什么数据库系统(以及哪个版本)(请更新标签因此)....
  • 从表中选择名称,replace(replace(replace(name,' ',''),'>','_')跨度>
  • 我正在使用 SQL Server Management Studio。

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


【解决方案1】:

这应该可以解决问题

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

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

Replace duplicate spaces with a single space in T-SQL

【讨论】:

  • 我赞成提供参考。
【解决方案2】:

在我看来,使用 REPLACE 确实会减慢这个过程,尤其是当您需要搜索大量数据时。 我的建议是截断输入字符串并使用 AND 和 LIKE。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    • 2023-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多