SQL替换函数

发布于 2024-11-16 17:12:36 字数 206 浏览 2 评论 0原文

我想替换 WHERE 语句中第一个字符为 S 的字符,

现在我所拥有的只有以下内容:

WHERE i1.CODE = REPLACE(i2.CODE, 'S', 'U')

但这会将所有 S 替换为 U。我只是希望将 S 替换为 U 仅当 S 是第一个字符时

谢谢!

I would like to replace characters within my WHERE statement that have the first character of S,

right now all i have is the following:

WHERE i1.CODE = REPLACE(i2.CODE, 'S', 'U')

but this would replace all S's with U's. I just wish to replace the S with a U only when the S is the first character

thank you!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

丿*梦醉红颜 2024-11-23 17:12:36
WHERE i1.CODE = REPLACE(LEFT(i2.CODE,1), 'S', 'U') + RIGHT(i2.CODE, LEN(i2.CODE)-1)
WHERE i1.CODE = REPLACE(LEFT(i2.CODE,1), 'S', 'U') + RIGHT(i2.CODE, LEN(i2.CODE)-1)
吻泪 2024-11-23 17:12:36
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) ,这可能会稍微提高速度。

Where i1.Code = Case
                    When Substring( i2.Code, 1, 1) = 'S' 
                        Then 'U' + Substring( i2.Code, 2, Len( i2.Code ) )
                    Else i2.Code
                    End

Another alternative:

Where i1.Code = Case
                    When i2.Code Like 'S%'
                        Then 'U' + Substring( i2.Code, 2, Len( i2.Code ) )
                    Else i2.Code
                    End

As ErikE suggested, you can also replace Len(i2.Code), with an arbitrarily large static value which might make a small speed improvement.

征﹌骨岁月お 2024-11-23 17:12:36

免责声明:这真的非常非常难看,但我认为它有效。

REPLACE(LEFT(i2.CODE, 1), 'S', 'U') + RIGHT(i2.CODE, LEN(i2.CODE)-1)

DISCLAIMER: This is really, really ugly, but I think it works.

REPLACE(LEFT(i2.CODE, 1), 'S', 'U') + RIGHT(i2.CODE, LEN(i2.CODE)-1)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文