gpt4 book ai didi

sql - 替换字符串中的字符而不影响名称

转载 作者:行者123 更新时间:2023-12-03 16:48:40 26 4
gpt4 key购买 nike

我正在尝试删除字符串中的某些字符 没有 从人们的名字中删除它们。

我试过使用嵌套 REPLACE语句,添加多个 CASE WHEN...THEN...ELSE声明,但我正在努力用代码覆盖所有基础

在我的表中,我有带有前缀和后缀的人名,用于在许多情况下表示该人的状态。

这是表中数据的示例

ZZScott Buzzton SC



我需要从这里删除“ZZ”和“SC”文本,然后离开 斯科特·巴兹顿 .

CASE声明我一直无法获得涵盖所有内容而没有嵌套层的东西
CASE
WHEN LEFT ( 'text' , 2 ) = 'ZZ' THEN STUFF ( 'text' , 1 , 2 , '' )
WHEN RIGHT ( 'text' , 2 ) = 'SC' THEN STUFF ( 'text' , LEN ( 'text' ) - 2 ) , 2 , '' )
ELSE 'text'
END

这只会删除“ZZ”或“SC”,但不会同时删除两者。我想知道是否可以做一些简单的事情来删除它们而不涉及更改表中的数据,因为这可能会破坏许多报告以及可能破坏我们的应用程序

补充:“ZZ”和“SC”只是两个例子,可能还有其他文本用于表示状态

最佳答案

apply是一种方法:

from t cross apply
(values (case when t.col like 'ZZ%' then stuff(t.col, 1, 2, '') else col end)
) v1(col) cross apply
(values (case when v1.col like ' SA%' then left(v1.col, len(v1.col) - 3) else v1.col end)
) v2(col)

或者,您可以使用蛮力:
(case when t.col like 'ZZ% SA'
then substring(col, 3, len(col) - 5)
when t.col like '% SA'
then left(col, len(col) - 3)
when t.col like 'ZZ%'
then stuff(col, 1, 2, '')
else col
end)

关于sql - 替换字符串中的字符而不影响名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62281159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com