在查询分析器中如何用sql语句判断email是否有效,即邮箱地址既包含"@"符号也包含"."符号

解决方案 »

  1.   

    charindex('@',email)>0 and charindex('.',email)>0 
      

  2.   


    就这个?..CHARINDEX('.',email)>0 AND CHARINDEX('@',email)>0
      

  3.   

    DECLARE @t TABLE 
    (
    eMail VARCHAR(32)
    )
    INSERT INTO @t (
    eMail
    ) VALUES ( 
    '[email protected]')
    INSERT INTO @t (
    eMail
    ) VALUES ( 
    'len.163@com')
    SELECT   eMail FROM @t WHERE CHARINDEX('.com',eMail)>0 AND CHARINDEX('@',eMail)>0
      

  4.   

    如果严格来讲的话,就比较复杂了:
    第一:字符串中只能有一个@字符
    第二:@前面要有至少一个字符
    第三:@后面不能是字符".",'@'和'.'之间必须有至少一个字符
    第四:"."后面必须是com,cn之类的后缀
    ...
    如果宽松来讲,只要判断有没有'@'就OK了
      

  5.   

    还是建议LZ在垃圾数据的入口来判断,也就是说在插入数据前用正则表达式判断合理后再插入到表中,否则在数据库判断太有局限性了,随便给一个[email protected]也算合理
      

  6.   

    DECLARE @car TABLE(email NVARCHAR(20))
    INSERT INTO @car SELECT '[email protected]' UNION ALL
    SELECT '123@com'
    SELECT * FROM @car
    SELECT email FROM @car WHERE CHARINDEX('@',email)>0 AND CHARINDEX('.',email)>0