Sql 在第一次出现时查找并替换表列中的部分字符串

Sql 在第一次出现时查找并替换表列中的部分字符串,sql,sql-server,tsql,replace,wildcard,Sql,Sql Server,Tsql,Replace,Wildcard,我需要查找表中的所有“x”,并将其替换为“x”,但仅在某些情况下,即当x接近a[0-9]时 这是我到目前为止的代码,但当我执行它时,它会替换所有出现的代码 update [tCustItems] set [CustLongDesc] = replace([CustLongDesc], 'x', ' X ') WHERE CustLongDesc LIKE '%[0-9]x%' This is the result I get... 1/2-13 X 2.75 HE X TAP

我需要查找表中的所有“x”,并将其替换为“x”,但仅在某些情况下,即当x接近a[0-9]时

这是我到目前为止的代码,但当我执行它时,它会替换所有出现的代码

update  [tCustItems]
set     [CustLongDesc] = replace([CustLongDesc], 'x', ' X ')
WHERE   CustLongDesc LIKE '%[0-9]x%'

This is the result I get... 
1/2-13 X 2.75 HE X TAP BOLT FULL THRD GR5 ZINC
this is what I want...
1/2-13 X 2.75 HEX TAP BOLT FULL THRD GR5 ZINC
注意,Hex现在是X


有什么想法吗?

放在两个空格中,因为其中一个没有清楚地显示出来。
请不要为第二个请求更多代码。
你要求举个例子,这就是一个例子

select stuff('1/2-13X2.75 HEX TAP BOLT FULL THRD GR5 ZINC',
              patindex('%[0-9]X%','1/2-13X2.75 HEX TAP BOLT FULL THRD GR5 ZINC') + 1,0,'  ')

正则表达式和clr。可能是PATINDEX之类的。我是SQL新手……你能给我举个例子吗?如果这是一个一次性的练习,我只需要手动运行简单的东西10次(将“0x”替换为“0x”,将“1x”替换为“1x”等),然后用它来完成:)这就是我一直在做的事情,如果我将它自动化,我会节省时间。