gpt4 book ai didi

从列表中替换 SQL

转载 作者:行者123 更新时间:2023-12-04 01:48:58 25 4
gpt4 key购买 nike

我想弄清楚如何使用另一个表中的数据替换字符串

我有一张看起来像这样的表:

身份证翻译
1 彼得
2 桑德拉
3 奥尔加

现在我想全选并使用如下所示的列表替换翻译:

原创 全新
e#
?
lg*%

这样选择列表看起来像这样:

身份证翻译
1 P#t#?
2 沙?
3 O*%a

所以,对于每个翻译,我需要有一个 REPLACE(Translation,Original,New)。
或者换句话说:我需要遍历第一个列表中的每个“翻译”并在我的替换表中进行另一个循环以查看要替换的内容

请记住,第一个列表有 25'000 行,第二个有 50'000 行,所以我不能只是手动输入:)

编辑

只是为了澄清:
我的查找表中的 Original 和 New 既可以是字母也可以是单词,因此该表可以如下所示:

原创 全新
一二
三点五十
日月

最佳答案

要在一个查询中执行此操作,您需要使用递归 CTE。类似的东西:

with trans as (
select t.original, t.new, row_number() over (order by t.original) as seqnum,
count(*) over () as cnt
from translations
),
t as (
select tt.id, tt.string, replace(tt.string, trans.original, trans.new) as replaced,
seqnum + 1 as seqnum, cnt
from totranslate tt join
trans
on trans.id = 1
union all
select t.id, t.string, replace(t.string, trans.original, trans.new),
seqnum + 1 as seqnum, cnt
from t join
trans
on t.seqnum = trans.id
where t.seqnum <= t.cnt
)
select t.id, t.string, t.replaced
from t
where seqnum = cnt;

关于从列表中替换 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30594541/

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