在第一次出现时在表列上查找和替换字符串的一部分

时间:2013-04-09 18:36:58

标签: sql sql-server tsql replace wildcard

我需要找到并用'X'替换我表中的所有'x',但仅在某些情况下,即x接近[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现在是He X

任何想法?

1 个答案:

答案 0 :(得分:0)

放入两个空格,因为一个人没有清楚地显示出来 请不要再提供更多代码。
你问了一个例子,这是一个例子。

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,'  ')