我正在尝试替换SQL查询中某个字符的第一个。 就我而言,我试图将第一个" -"替换为" ; ",但不是第二个
这是我尝试过的查询的简化版本,但它替换了两个"-">
SELECT REPLACE (xColumn, '-',';')FROM xTable
示例 1:
原始数据:COMP-LAP-0001
我的结果:COMP;圈;0001
预期成果:COMP;LAP-0001
示例 2:
原始数据:COMP-0001
我的结果:COMP;0001
预期成果:COMP;0001
您可以使用CHARINDEX()
来定位字符串中给定字符的第一个匹配项,然后将其替换为STUFF()
:
SELECT STUFF(xColumn, CHARINDEX('-', xColumn), 1, ';') FROM xTable
DB小提琴上的演示:
WITH xTable AS (
SELECT 'COMP-LAP-0001' xColumn
UNION ALL SELECT 'COMP-0001'
)
SELECT STUFF(xColumn, CHARINDEX('-', xColumn), 1, ';') FROM xTable
|(无列名( | |:--------------- | |补偿;LAP-0001 | |补偿;0001 |