我正在尝试替换SQL查询中某个字符的第一个字符。 就我而言,我尝试将第一个“-”替换为“;”,而不是第二个
这是我尝试过的查询的简化版本,但同时替换了两个“-”
SELECT REPLACE (xColumn, '-',';')FROM xTable
示例1:
原始数据: COMP-LAP-0001
我的结果: COMP; LAP; 0001
预期结果: COMP; LAP-0001
示例2:
原始数据: COMP-0001
我的结果: COMP; 0001
预期结果: COMP; 0001
答案 0 :(得分:2)
您可以使用CHARINDEX()
在字符串中找到给定字符的第一个匹配项,然后将其替换为STUFF()
:
SELECT STUFF(xColumn, CHARINDEX('-', xColumn), 1, ';') FROM xTable
WITH xTable AS (
SELECT 'COMP-LAP-0001' xColumn
UNION ALL SELECT 'COMP-0001'
)
SELECT STUFF(xColumn, CHARINDEX('-', xColumn), 1, ';') FROM xTable
| (No column name) | | :--------------- | | COMP;LAP-0001 | | COMP;0001 |