我想有一个正确的方法来检查字符串是否是另一个字符串的开头(并且它们不相同)。
鉴于s1
和s2
我有以下可能性:
LENGTH(s1) < LENGTH(s2) AND SUBSTR(s2, 1, LENGTH(s1)) = s1
s2 LIKE replace(replace(replace(s1,'\','\\'),'%','\%'),'_','\_') || '_%' ESCAPE '\'
对于我不知道的原生函数,有没有更好的方法?
注意:s1
和s2
可能包含%
,_
或任何其他字符!
感谢。
答案 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;