CHARINDEX ( expression1 , expression2 [ , start_location ] ) 参数
expression1一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。expression2一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。
                                                             

解决方案 »

  1.   

    liukanghui,不行啊。。我指的是text 类型,expression2 只能为 varchar 类型。。
      

  2.   

    也就是说,charindex 最多只能对 8000 个字任的 varchar 型字串进行搜索,若是几万几十万的字串,且存放于 text 字段中,该如何实现类似 charindex 的功能呢?请高手们指教!~~
      

  3.   

    用pathindex啊!和charindex差不多PATINDEX 对 text 数据类型很有用;除 IS NULL、IS NOT NULL 和 LIKE(这些是 WHERE 子句中对 text 类型有效的仅有的其它比较运算)外,PATINDEX 也可用于 WHERE 子句中。
      

  4.   

    PATINDEX
    返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。语法
    PATINDEX ( '%pattern%' , expression ) 参数
    pattern一个字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数据类型类别的表达式。expression一个表达式,通常为要在其中搜索指定模式的列,expression 为字符串数据类型类别。
      

  5.   

    create table # (a text)insert # values('asdfasdfiewrhjtoigk;jhdsaloihvbdiouvdsigdfgttyjudgufyufyudrtyesryreyluhglseiuhtldskhglksdhguidsfvbludshgkdhf')DECLARE @ptrval varbinary(16),@len int
    SELECT @ptrval = TEXTPTR(a),@len=datalength(a)-1 FROM #
    READTEXT #.a @ptrval 1 @len
    drop table #
    自己改个循环
      

  6.   

    select PatIndex( str1, str2) as str1 from tablename where PatIndex(str1,str2)<>0
      

  7.   

    create table # (a text)insert # values('asdfasdfiewrhjtoigk;jhdsaloihvbdiouvdsigdfgttyjudgufyufyudrtyesryreyluhglseiuhtldskhglksdhguidsfvbludshgkdhf')select PATINDEX ( '%f%' , a ) from #