【问题标题】:SQL Server select statment [closed]SQL Server 选择语句 [关闭]
【发布时间】:2020-09-09 07:38:51
【问题描述】:

我有超过 2000 行,我想替换以下格式的文本:

lorem ipsum (123456) lorem ipsum lorem ipsum 

我需要从所有 2000 多行的所有产品中删除 (123456)

【问题讨论】:

  • 删除了 plsql 标签 - 这将适用于 Oracle PL/SQL - 而不是 SQL Server
  • 你的意思是? : update mytable set myfield = replace(myfield, '(123456)', '')
  • item a (1234) for men item b (986) for kids 我需要这些物品,比如这个 item a for men item b for men
  • 如果你有不同的字符串(有些需要多次替换),你应该在你的问题中详细说明,@MohammedBazbazat。你的问题根本没有解释。似乎您所追求的是正则表达式替换。 SQL Server 本身并不支持正则表达式,所以在我看来,你最好看看 clr 函数。
  • 你问一个问题,你得到一个答案,然后你会说“哦,我有不同的字符串,我的问题是完全不同的”。抱歉,如果您不坐下来整理您的想法,我们将无法为您提供帮助。

标签: sql-server select replace replaceall


【解决方案1】:

你可以使用STUFF函数来实现:

DECLARE @S VARCHAR(MAX)='lorem ipsum (123456) lorem ipsum lorem ipsum'

SELECT STUFF(@S,PATINDEX('%[()0-9]%', @S),CHARINDEX(')', @S, PATINDEX('% [()0-9]%', @S))-PATINDEX('%[()0-9]%', @S)+1,'')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 2011-06-05
    • 2016-06-22
    • 2012-09-10
    相关资源
    最近更新 更多