0

如何在 SQL 查询中使用 replace 语句来替换/删除大括号内的所有文本和大括号本身。我的数据库中有很多类似的带有大括号的文本,我可以使用正则表达式或类似的东西吗?

例如@DN = value1!!{value2}<value3> --->VALUE1!!VALUE3 字符数是非常动态的,所以不能用数字进行 charindex。
从之前的讨论中,我使用了这个

STUFF(DN, PATINDEX('%{ }%', DN), LEN(DN), '')

这只是赋予NULL价值。

谢谢

4

1 回答 1

0

试试这个:

Declare @DN varchar(100)

Set @DN = 'value1!!{value2}<value3>'

Select Left(@DN, CHARINDEX('{',@DN) -1) + REPLACE(REPLACE(SUBSTRING(@DN, CHARINDEX('}', @DN)+1, (LEN(@DN) - CHARINDEX('}', @DN))), '<',''),'>','')

它很乱,但会给你。

value1!!<value3>

于 2013-04-02T12:54:18.670 回答