我想替换我的WHERE语句中具有S的第一个字符
的字符现在我所拥有的是以下内容:
WHERE i1.CODE = REPLACE(i2.CODE, 'S', 'U')
但这会用U取代所有的S.我只想在S是第一个字符
时用U 替换S. 谢谢你!答案 0 :(得分:4)
WHERE i1.CODE = REPLACE(LEFT(i2.CODE,1), 'S', 'U') + RIGHT(i2.CODE, LEN(i2.CODE)-1)
答案 1 :(得分:2)
Where i1.Code = Case
When Substring( i2.Code, 1, 1) = 'S'
Then 'U' + Substring( i2.Code, 2, Len( i2.Code ) )
Else i2.Code
End
另一种选择:
Where i1.Code = Case
When i2.Code Like 'S%'
Then 'U' + Substring( i2.Code, 2, Len( i2.Code ) )
Else i2.Code
End
正如ErikE建议的那样,你也可以用任意大的静态值替换Len(i2.Code)
,这可能会提高速度。
答案 2 :(得分:1)
免责声明:这真的非常难看,但我认为它有效。
REPLACE(LEFT(i2.CODE, 1), 'S', 'U') + RIGHT(i2.CODE, LEN(i2.CODE)-1)