你如何比较SQL中的两个字符串,只获得匹配的所有字母?

时间:2013-06-26 19:12:47

标签: sql regex string db2 compare

我正在尝试在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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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 example.