这应该是一个简单的,虽然我没有找到合适的解决方案。SQL-Server使用正则表达式替换部分字符串
我需要实现一个(相当)简单的替换使用SQL(SQL Server),如下所示。想象一下,你有一个字符串,它看起来像:
'This is a simple example where aaa[0004] should become aaa[4] and b[0],c[1] should remain unchanged'
换句话说,模式[0004]
应该成为[4]
。
我最初以为做的替换这样的:即使测试之前
SET @MyString = REPLACE(@MyString,'[0','[') ;
但是,我意识到,这也将转换[0]
到[]
,这不是要我要。
我知道如何在PL/SQL中很简单地做到这一点,但在SQL Server中我遇到了困难。
任何帮助将不胜感激。
这在SQL Server中很痛苦。 –
如果您可以使用CLR程序集,[SqlSharp](http://www.sqlsharp.com/features/)具有RegEx的实现以及大量优秀的CLR功能。 – SqlZim
谢谢@SqlZim,但不,我不能使用这种类型的东西(公司政策)。我想过搜索'[0',从那里']',如果中间有数字,用'['替换第一个'[0'。然后循环,直到没有发现这种情况。那会奏效,但它的丑陋让我感到痛苦。 – FDavidov