1

我正在尝试编写一个公式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
4

2 回答 2

2

我认为 SQL 不太适合这个问题,你真的可以使用一种可以逐个字符比较的编程语言。

您正在使用什么数据库,可以选择编写自定义函数来实现您想要的并允许从您的 SQL 语句中调用该函数。

更新

我相信 IBM DB2 提供了一个过程扩展,您可以使用它来编写上面建议的客户函数。不幸的是,我没有任何使用 DB2 的经验,因此无法提供帮助。我找到了以下链接,其中包含一些信息:

http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/ad/c0011916.htm

于 2013-06-26T19:26:07.233 回答
0

显然,这个问题并没有完全指定要求,但如前所述,问题可以得到解决,给定以下输入:

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

SQLFiddle 示例。

于 2013-06-27T00:17:18.150 回答