查找SYBASE SQL中字符串之间的相似之处

时间:2012-08-03 14:16:11

标签: sql database select sybase

我有两个字符串。我想知道两个字符串中有多少个字符是相似的。

E.x:让我们说'xyzabc','xyzadh'。我想知道是否有一个函数可以给出相似性破坏的索引。在这种情况下,它将是4,因为直到'xyza'字符串是相同的。如果字符串是'xyzabc','xymabc',则结果应为2.

我想将其用作select func('xyzabc', 'xyzwer');来获得所需的答案。如果SQL中存在函数,Kinldy会告诉我。

提前多多感谢!!!

1 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是使用正则表达式。这是个主意。你会使用regexp_substr()。在您的示例中,正则表达式将是'xyzwer | xyzwe | xyzw | xyz | xy | x'。然后,您将测量匹配子字符串的长度。换句话说,您需要将其中一个字符串转换为正则表达式。

另一种方法是使用一个巨大的案例陈述:

 (case when left(str1, 10) = left(str2, 10) then 10
       when left(str1, 9) = left(str2, 9) then 9
       ...
       when left(str1, 1) = left(str2, 1) then 1
       else 0
   end)

这假设10是最长的字符串。