Utilisation de PatIndex et CharIndex comme la fonction InStr

J'ai essayé d'utiliser Instr pour cela, mais cela n'a pas fonctionné, donc j'ai trouvé le supposé être équivalent en utilisant PatIndex et CharIndex , cependant, j'ai un problème ici quand je lance ceci:

 SELECT PATINDEX(`http://www.stackoverflow.com`,'%.com%') 

Cela renvoie 0


 SELECT CHARINDEX(`http://www.stackoverflow.com`,'%.com%') 

Cela renvoie 0


 SELECT PATINDEX(`http://www.stackoverflow.com`,'.com') 

Cela renvoie 0


 SELECT CHARINDEX(`http://www.stackoverflow.com`,'.com') 

Cela renvoie 0


Comment puis-je faire fonctionner cela comme InStr ?

Si mon calcul est correct, il devrait returnner 25 au lieu de 0 , quelqu'un sait pourquoi ce n'est pas?

Vous l'avez inversé.

 select patindex('%.com%', 'http://www.stackoverflow.com'); select charindex('.com', 'http://www.stackoverflow.com'); 

Soyez prudent lorsque vous utilisez ces fonctions dans les fonctions de colonne calculées. Parce qu'ils sont non déterministes.

https://technet.microsoft.com/en-us/library/aa214775(v=sql.80).aspx