我正在尝试编写一个公式SQL
,它将查看 2 个字符串,结果是所有匹配的字母。
编辑:查询IBM DB2
编辑:ABP 与 AP = AP 相比
例子:
ABP compared to ABMP = ABP
MP compared to P = P
AP compared to BMP = P
ABP compared to AP = AP
我认为 SQL 不太适合这个问题,你真的可以使用一种可以逐个字符比较的编程语言。
您正在使用什么数据库,可以选择编写自定义函数来实现您想要的并允许从您的 SQL 语句中调用该函数。
更新
我相信 IBM DB2 提供了一个过程扩展,您可以使用它来编写上面建议的客户函数。不幸的是,我没有任何使用 DB2 的经验,因此无法提供帮助。我找到了以下链接,其中包含一些信息:
显然,这个问题并没有完全指定要求,但如前所述,问题可以得到解决,给定以下输入:
create table Temp
(
id int,
val varchar(1000)
);
insert into temp values
(1,'ABMPZ'),
(2,'AM');
像这样:
with t (id, c, n) as (
select id, substring(val,1,1), 1 from temp
union all
select t.id, substring(temp.val, t.n+1, 1), t.n+1 from t, temp
where t.id=temp.id and t.n < 1000 and t.n < len(val)
)
select t1.c from t t1, t t2
where t1.id = 1 and t2.id = 2 and t1.c = t2.c