On Thu, 26 Jul 2007, [UTF-8] Т�^C�^Gков �^\и�^Eаил wrote: > Please, help me! > My code: > "IF char_length(substring(str from '^[a-zA-Z]*://'))=0 THEN > str:= 'http://'||str; > END IF;" > > If str= http://www.msn.com then nothing happen > (all is OK), but if str= just www.msn.com then nothing happen too! > > Why?
According to: http://www.postgresql.org/docs/8.2/interactive/functions-matching.html a non-match returns NULL, whose char_length is also NULL. Using one of the regexp operators ~ or ~* would probably be easier, but if you really wanted to do this with substring, you should be checking for no match, not a 0 length match. ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend