SQL REPLACE函数,如何替换单个字母

Wal*_*ler 3 sql sql-server

我的代码如下:

REPLACE(REPLACE(cc.contype,'x','y'),'y','z') as ContractType,
Run Code Online (Sandbox Code Playgroud)

这个REPLACE是正确的我想要的,但它不幸的是当我想要时将所有"z"改为"y"

x> y
y> z

这有意义吗?我不希望所有新的Y在我的第二个REPLACE函数中再次改变.在Microsoft Access中,我将使用以下内容执行此操作

Iif(cc.contype = x,y,iif(cc.contype = y,x))

但我不确定如何在SQL中表达这一点,我最好用客户端语言做这种事情吗?

非常感谢.

编辑:也试过没有运气:

       CASE WHEN SUBSTRING(cc.contype, 1, 1) = 'C'
        THEN REPLACE(cc.contype, 'C', 'Signed')
       CASE WHEN SUBSTRING(cc.contype, 1, 1) = 'E'
        THEN REPLACE(cc.contype, 'E', 'Estimate') as ContractType,
Run Code Online (Sandbox Code Playgroud)

Cur*_*urt 6

如果你不想让新的"y"成为"z",那就试着反过来做:

REPLACE(REPLACE(cc.contype,'y','z'),'x','y') as ContractType
Run Code Online (Sandbox Code Playgroud)