日期:2014-05-18  浏览次数:20551 次

sql查询字段中不符合规格的邮箱数据
有一列字段存储系统邮件的cc~
正确的数据
a@abc.com;b@abc.com;c@abc.com;d@abc.com..
现在因为程序错误,导致某几个作为分隔符的';'不见了.
变成
a@abc.comb@abc.com;c@abc.com;d@abc.comd@abc.com
求怎么查出这些列

------解决方案--------------------
最后一个邮箱是以;结束还是没有;
如果最后一个是以;结束的可以通过判断;号和@的个数来判断
SQL code

CREATE TABLE Table2
(
    KK VARCHAR(100)
)

INSERT INTO Table2
SELECT 'a@abc.com;b@abc.com;c@abc.com;d@abc.com;' UNION
SELECT 'a@abc.comb@abc.com;c@abc.comd@abc.com;'


SELECT * FROM Table2
WHERE LEN(KK) - LEN(REPLACE(KK,';','')) <> LEN(KK) - LEN(REPLACE(KK,'@',''))

------解决方案--------------------
SQL code

select *
from tb
where patindex('%.com[^;]%',col) > 0