如何在SQL Server中更新字符串中连字符间的部分内容
解决方案
假设你的表名为YourTableName(请替换为实际表名),可以通过SQL Server的字符串函数组合来定位并替换两个连字符之间的内容:
UPDATE YourTableName SET Supplier = LEFT(Supplier, CHARINDEX('-', Supplier) - 1) + '-testing321-' + RIGHT(Supplier, LEN(Supplier) - CHARINDEX('-', Supplier, CHARINDEX('-', Supplier) + 1)) WHERE Supplier LIKE '%-%-%'; -- 仅更新符合「字符串-字符串-字符串」格式的行,避免误改其他数据
语句逻辑拆解:
LEFT(Supplier, CHARINDEX('-', Supplier) - 1):提取第一个连字符前的内容(示例中为test)'-testing321-':替换后的中间固定内容RIGHT(Supplier, LEN(Supplier) - CHARINDEX('-', Supplier, CHARINDEX('-', Supplier) + 1)):定位第二个连字符的位置,提取其之后的内容(示例中为value)WHERE子句:过滤出包含至少两个连字符的行,防止修改不符合目标格式的数据
如果需要动态替换中间内容(而非固定值),只需调整'-testing321-'部分即可,比如结合其他列值或自定义函数生成替换内容。
内容的提问来源于stack exchange,提问作者Kairo
相关产品推荐
相关产品推荐

