【问题标题】:How do you strip a character out of a column in SQL Server?如何从 SQL Server 的列中删除一个字符?
【发布时间】:2009-06-11 20:17:48
【问题描述】:

如何从 SQL Server 中的字符串中删除一个值?

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    这是使用REPLACE 函数完成的

    在 SELECT 查询中从“SomeTable”中的“SomeColumn”中去除“somestring”:

    SELECT REPLACE([SomeColumn],'somestring','') AS [SomeColumn]  FROM [SomeTable]
    

    更新表格并从“SomeTable”中的“SomeColumn”中删除“somestring”

    UPDATE [SomeTable] SET [SomeColumn] = REPLACE([SomeColumn], 'somestring', '')
    

    【讨论】:

      【解决方案2】:

      在有问题的列上使用“REPLACE”字符串函数:

      UPDATE (yourTable)
      SET YourColumn = REPLACE(YourColumn, '*', '')
      WHERE (your conditions)
      

      将“*”替换为您要删除的字符,并指定您的 WHERE 子句以匹配您要应用更新的行。

      当然,也可以使用 REPLACE 函数 - 正如其他回答者所显示的那样 - 在 SELECT 语句中 - 从您的问题来看,我假设您正在尝试更新表。

      马克

      【讨论】:

        【解决方案3】:

        看看下面的函数 - REPLACE()

        select replace(DataColumn, StringToReplace, NewStringValue)
        
        //example to replace the s in test with the number 1
        select replace('test', 's', '1')
        //yields te1t
        

        http://msdn.microsoft.com/en-us/library/ms186862.aspx

        编辑
        如果要删除字符串,只需使用带有空字符串的替换函数作为第三个参数,例如:

        select replace(DataColumn, 'StringToRemove', '')
        

        【讨论】:

        • SQLServer 使用单引号而不是双引号
        • @ichiban - 我仍然希望这是 SQL 更正的东西。考虑到单引号可以注释掉 VB 代码,如果能保持一致,那就太好了……我已经编辑了这篇文章。谢谢!
        【解决方案4】:
        UPDATE [TableName]
        SET [ColumnName] = Replace([ColumnName], '[StringToRemove]', '[Replacement]')
        

        在你的例子中是

        UPDATE [TableName]
        SET [ColumnName] = Replace([ColumnName], '[StringToRemove]', '')
        

        因为没有替代品(你想摆脱它)。

        这将在指定表的每一行上运行。除非您只想指定某些行,否则不需要 WHERE 子句。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-12-22
          • 2021-07-23
          • 1970-01-01
          • 1970-01-01
          • 2020-06-09
          • 2020-10-28
          • 2010-12-21
          • 2023-03-13
          相关资源
          最近更新 更多