【问题标题】:How to substitute a partial string?如何替换部分字符串?
【发布时间】:2020-11-21 00:25:37
【问题描述】:

提前感谢您的帮助。 我想从选择查询中删除部分字符串,其中有图例“ProcessError:Lens”后跟 12 个数字,并用破折号替换这 12 个数字。 我正在添加当前查询结果的结果:

          Error Description
 ProcessError : Lens 000300084502 is defect/scrap lens! 
 ProcessError : 20007  rejected 
 ProcessError : Lens 046000085174 is defect/scrap lens! 
 ProcessError : Lens 011900085176 is defect/scrap lens! 
 ProcessError : Lens 001200085188 is defect/scrap lens! 
 ProcessError : 20006  operation canceled 
 ProcessError : Lens 000300085787 is defect/scrap lens! 

谢谢你,周末愉快。

【问题讨论】:

    标签: sql-server substitution


    【解决方案1】:

    假设每条记录不超过一个键字符串,您可以将 patindex() 与 stuff() 一起使用

    示例

    Declare @YourTable Table ([Error Description] varchar(150))
    Insert Into @YourTable Values 
     ('ProcessError : Lens 000300084502 is defect/scrap lens!')
    ,('ProcessError : 20007')
    ,('ProcessError : Lens 046000085174 is defect/scrap lens!')
    ,('ProcessError : Lens 011900085176 is defect/scrap lens!')
    ,('ProcessError : Lens 001200085188 is defect/scrap lens!')
    ,('ProcessError : 20006')
    ,('ProcessError : Lens 000300085787 is defect/scrap lens!')
     
    Select *
          ,NewVal = IsNull(stuff([Error Description]
                           ,patindex('%Lens [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]%', [Error Description])
                           ,17
                           ,'Lens ------------'
                     ),[Error Description])
     from @YourTable
    

    退货

    Error Description                                       NewVal
    ProcessError : Lens 000300084502 is defect/scrap lens!  ProcessError : Lens ------------ is defect/scrap lens!
    ProcessError : 20007                                    ProcessError : 20007
    ProcessError : Lens 046000085174 is defect/scrap lens!  ProcessError : Lens ------------ is defect/scrap lens!
    ProcessError : Lens 011900085176 is defect/scrap lens!  ProcessError : Lens ------------ is defect/scrap lens!
    ProcessError : Lens 001200085188 is defect/scrap lens!  ProcessError : Lens ------------ is defect/scrap lens!
    ProcessError : 20006                                    ProcessError : 20006
    ProcessError : Lens 000300085787 is defect/scrap lens!  ProcessError : Lens ------------ is defect/scrap lens!
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-17
      • 2013-06-19
      • 2021-03-25
      • 1970-01-01
      • 2020-03-04
      • 2022-12-28
      • 2020-01-28
      相关资源
      最近更新 更多