News表Content字段(ntext类型),数据大概几千条,要select出Content中没有'<'和'/>'字符的数据。

解决方案 »

  1.   

    partindex('%<'和'/>%',Content)>0
      

  2.   

    PATINDEX('% <'和'/>%',Content)>0
      

  3.   


    select * from news where charindex('<',cast(content as varchar)) = 0 and charindex('/>',cast(content as varchar)) = 0这里用and还是or得看你自己的要求了.
      

  4.   


    PATINDEX
    返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。语法
    PATINDEX ( '%pattern%' , expression ) 参数
    pattern一个字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数据类型类别的表达式。expression一个表达式,通常为要在其中搜索指定模式的列,expression 为字符串数据类型类别。返回类型
    int注释
    PATINDEX 对 text 数据类型很有用;除 IS NULL、IS NOT NULL 和 LIKE(这些是 WHERE 子句中对 text 类型有效的仅有的其它比较运算)外,PATINDEX 也可用于 WHERE 子句中。如果 pattern 或 expression 为 NULL,则当数据库的兼容级别为 70 时 PATINDEX 返回 NULL;如果数据库兼容级别为 65 或更靠前,则仅当 pattern 和 expression 同时为 NULL 时,PATINDEX 返回 NULL。示例
    A. 在 PATINDEX 中使用模式
    本示例查找模式"wonderful"在 titles 表中 notes 列的某一特定行中的开始位置。USE pubs
    GO
    SELECT PATINDEX('%wonderful%', notes)
    FROM titles
    WHERE title_id = 'TC3218'
    GO下面是结果集:----------- 
    46          (1 row(s) affected)如果未通过 WHERE 子句限制要搜索的行,查询将返回表中的所有行,对在其中找到该模式的所有行报告非零值,对在其中未找到该模式的所有行报告零值。B. 在 PATINDEX 中使用通配符
    本示例使用通配符查找模式"won_erful"在 titles 表中 notes 列的某一特定行中的开始位置,其中下划线为代表任何字符的通配符。USE pubs
    GO
    SELECT PATINDEX('%won_erful%', notes)
    FROM titles
    WHERE title_id = 'TC3218'
    GO下面是结果集:------------
    46(1 row(s) affected)
      

  5.   


    declare @t table (id varchar(20), COL1 int)
    insert into @t select 'aa',1 union all select 'as',2 union select 'as',3 union select 'a',4
    select * from @t where patindex('%a%',id)>0
    /*
    a 4
    aa 1
    as 2
    as 3
    */
      

  6.   

    按LZ的意思的话,应该是:
    select * from news where (charindex(' <',cast(content as varchar)) = 0) or (charindex('/>',cast(content as varchar)) = 0 )