gpt4 book ai didi

sql - PostgreSQL:检查子字符串是否在字符串中,如果为真,则用子字符串替换整个字符串

转载 作者:行者123 更新时间:2023-11-29 13:47:19 25 4
gpt4 key购买 nike

我在这样的表中有一列:


|  biz_name   |
---------------
| www.Dog.com |
| Dog LLC. |
| Dog Inc. |
| www.Cat.com |
| Cat Corp |

对于列中的每个元素,我想检查它是否包含子字符串“Dog”或“Cat”,如果包含,则用“Dog”或“Cat”替换整个字符串。

结果应该是:


| biz_name |
---------------
| Dog |
| Dog |
| Dog |
| Cat |
| Cat |

有没有办法在不使用 CASE WHEN 的情况下做到这一点:

    CASE 
WHEN biz_name ilike '%Dog%' THEN 'Dog'
WHEN biz_name ilike '%Cat%' THEN 'Cat'
ELSE biz_name END as biz_name

上表只是演示我正在尝试做的事情的示例,但我正在处理的实际表有更多的子字符串,我正在尝试使用多个 CASE WHEN 语句搜索和替换它变得乏味。有没有人有更有效的方法来做到这一点?谢谢。

最佳答案

1) 你能快速插入临时表吗

--assuming table name is biz

declare @name varchar(max)
declare @TEMP table (Name varchar(max))

-- insert all your values
insert into @TEMP values ('dog')
insert into @TEMP values ('cat')


set @name = select top 1 name from @TEMP
delete from @temp where name = @name -- remove from que /table

WHILE @name IS NOT NULL
BEGIN

update dbo.biz
set biz_name = @name
where biz_name like '%' + @name '%'

set @name = select top 1 name from @TEMP
delete from @TEMP where name = @name
END

关于sql - PostgreSQL:检查子字符串是否在字符串中,如果为真,则用子字符串替换整个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46227196/

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