数据表tblEmail中有一个字段叫“邮件地址”,我要查询该字段中有“@”字符的记录的语句为:select * from tblEmail where 邮件地址 Like '%@%'现在我要查询该字段中没有“@”字符的记录,请问这句SQL查询语句怎么写?

解决方案 »

  1.   

    string sql1 = " select count(*) from tblEmail where 邮件地址 like'%@%'"
      

  2.   

    where charindex('@',邮件地址)>0
      

  3.   

    select * from tblEmail where 邮件地址 Unlike '%@%'
    使用unlike就行了
      

  4.   

    LIKE
    确定给定的字符串是否与指定的模式匹配。模式可以包含常规字符和通配符字符。模式匹配过程中,常规字符必须与字符串中指定的字符完全匹配。然而,可使用字符串的任意片段匹配通配符。与使用 = 和 != 字符串比较运算符相比,使用通配符可使 LIKE 运算符更加灵活。如果任何参数都不属于字符串数据类型,Microsoft® SQL Server™ 会将其转换成字符串数据类型(如果可能)。语法
    match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]参数
    match_expression任何字符串数据类型的有效 SQL Server 表达式。patternmatch_expression 中的搜索模式,可以包含下列有效 SQL Server 通配符。通配符 描述 示例 
    % 包含零个或更多字符的任意字符串。 WHERE title LIKE '%computer%' 将查找处于书名任意位置的包含单词 computer 的所有书名。 
    _(下划线) 任何单个字符。 WHERE au_fname LIKE '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。 
    [ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。 WHERE au_lname LIKE '[C-P]arsen' 将查找以arsen 结尾且以介于 C 与 P 之间的任何单个字符开始的作者姓氏,例如,Carsen、Larsen、Karsen 等。 
    [^] 不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。 WHERE au_lname LIKE 'de[^l]%' 将查找以 de 开始且其后的字母不为 l 的所有作者的姓氏。 
    select * from tblEmail where 邮件地址 Like '%[^@]%'
      

  5.   

    select * from tblEmail where 邮件地址 not Like '%@%'
      

  6.   

    select * from tblEmail where 邮件地址 not Like '%@%'
    select * from tblEmail where charindex('@',邮件地址)=0
      

  7.   

    select * from tblEmail where 邮件地址 NOT Like '%@%'
      

  8.   

    select * from tblEmail where 邮件地址 NOT Like '%@%'
      

  9.   

    select * from tblEmail where 邮件地址 not Like '%@%'
      

  10.   

    select * from tblEmail where 邮件地址 NOT Like '%@%'
    NOT Like表示不包含
      

  11.   

    select * from tblEmail where 邮件地址 not Like '%@%'
    select * from tblEmail where charindex('@',邮件地址)=0