print CHARINDEX(N'((fan' ,N'(((fan')
在我的Mssql数据库上结果是 3
在其他的Mssql数据库结果却是 2
 郁闷
是不是和数据库配置有关? 望高手指点

解决方案 »

  1.   


    print CHARINDEX(N'DDfan' ,N'DDDfan') 也一样出现重复字符都有这个问题
      

  2.   

    是有点怪
    print CHARINDEX(N'((fan' ,N'(((fan')   -- 3
    print CHARINDEX(N'(fan' ,N'((fan')     --2 都去掉一个'(',结果却不同
      

  3.   

    print PATINDEX('%aab%' ,'aaab')
    也是3。不理解......
      

  4.   

    在sql2000上是3,在sql2005上是2。
    会不会是sql2000的虫子哦?
      

  5.   

    --均为2
    --SQL Server 2000
    EXEC sp_dbcmptlevel 'TEST', '80';
    print CHARINDEX(N'((fan' ,N'(((fan')
    --SQL Server 2005
    EXEC sp_dbcmptlevel 'TEST', '90';
    print CHARINDEX(N'((fan' ,N'(((fan')/*
    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
    2
    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
    2
    */
      

  6.   

    我在两台不同排序方式的服务器上得到了不同结果。二进制排序的,是2。字典排序的是3。不知道是不是这个原因。都是sql2000
      

  7.   

    在我机上的SQL 测试结果:print CHARINDEX(N'((fan' ,N'(((fan')   -- 3print CHARINDEX(N'((fan' ,N'((((fan')  -- 4print CHARINDEX(N'(fan' ,N'(((fan')    -- 3print CHARINDEX(N'fan' ,N'(((fan')     -- 4 print CHARINDEX(N'(((fan' ,N'(((fan')  -- 1 就是没有出现 2 的结果。看来以最后一个“(”号为准。
    可能是MSSQL的一个BUG
      

  8.   

    再测试,发现重复的字符串就会有失真现象。
    如:print CHARINDEX(N'Dfan' ,N'DDDDfan')      -- 4
    值是正确的print CHARINDEX(N'DDfan' ,N'DDDDfan')     -- 4
    应是3,但结果仍为4print CHARINDEX(N'DDDfan' ,N'DDDDfan')    -- 4
    应是2,可惜结果仍是4 。不知是不是其它机子也一样?
      

  9.   

    CHARINDEX返回的结果是不确定的吗???
    体会这狂野
    体会孤独
    体会这欢乐
    爱恨离别
      

  10.   

    问题基本明确了,是数据库的排序规则引起的,不同规则会有不同结果,谢谢selectplayer()
      

  11.   

    print CHARINDEX(N'Dfan' ,N'DDDDfan')      -- 4
    值是正确的print CHARINDEX(N'DDfan' ,N'DDDDfan')     -- 4
    应是3,但结果仍为4print CHARINDEX(N'DDDfan' ,N'DDDDfan')    -- 4是哦,在我机子上也全部为4,哈哈