检查字符串是否以另一个字符串开头最方便的方法是什么?

时间:2011-12-12 10:58:35

标签: sql oracle

我想有一个正确的方法来检查字符串是否是另一个字符串的开头(并且它们不相同)。

鉴于s1s2我有以下可能性:

LENGTH(s1) < LENGTH(s2) AND SUBSTR(s2, 1, LENGTH(s1)) = s1

s2 LIKE replace(replace(replace(s1,'\','\\'),'%','\%'),'_','\_') || '_%' ESCAPE '\'

对于我不知道的原生函数,有没有更好的方法?

注意:s1s2可能包含%_或任何其他字符!

感谢。

2 个答案:

答案 0 :(得分:2)

我不认为这是一种更好的方式,但为了完整性,还有:

LENGTH(s1) < LENGTH(s2) AND INSTR(s2,s1) = 1

答案 1 :(得分:0)

只需简单的if语句即可:

set serveroutput on

declare
  s1 varchar2(1000) := 'hellothere';
  s2 varchar2(1000) := 'hello';
begin
  if s1 != s2 and s1 like s2||'%' then
    dbms_output.put_line('There are alike');
  else
    dbms_output.put_line('not alike');
  end if;
end;