像InStr函数一样使用PatIndex和CharIndex

时间:2013-08-17 00:31:32

标签: sql-server sql-server-2008 patindex charindex

我尝试使用Instr,但没有用,所以我发现应该使用PatIndexCharIndex等效,但是,我在这里遇到问题当我跑这个时:

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

这会返回0


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

这会返回0


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

这会返回0


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

这会返回0


如何让它像InStr一样工作?

如果我的计算是正确的,它应该返回25而不是0,任何人都知道它为什么不是?

2 个答案:

答案 0 :(得分:3)

你已经逆转了。

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

答案 1 :(得分:1)

在计算列功能中使用这些功能时要小心。因为它们是非确定性的。

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