我导入了一个包含大约100,000条记录的表,其中一些记录需要删除。我想识别并删除任何和所有记录,其中特定字段(称为MyQuery)包含用引号括起来的单词,但如果字段中只有两个引号。
例如,我想删除“这是一个测试” - 但不是 - “这是”一个“测试”
谢谢你的帮助
我向你们所有人道歉,因为我的问题很糟糕。我想我能够根据你的建议找到答案!
select * from <table> where LEN(myquery) - LEN(REPLACE(myquery,'"','')) = 2 and myquery like '"%"'
非常感谢你们 - 你们是最棒的!
你可以这样做:
DELETE
-- SELECT * -- To test first!
FROM YourTable
WHERE LEN(MyQuery) - LEN(REPLACE(MyQuery, '"', '')) = 2;
AND MyQuery LIKE '"%"'
您基本上比较了删除所有引号后字段的长度。这是确定特定字符出现次数的简便方法。
在您发表评论后,我添加了另一个条件,因此引号始终围绕该字段。
您可以使用以下查询删除包含“”的所有记录,不包括以“”开头和结尾的记录:
DELETE From <TABLENAME> Where COL like '%"%' and (COL not like '"%' Or COL not like '%"')
或者,你可以使用:这里我们删除所有超过2次出现的记录“
DELETE FROM <TABLENAME> WHERE (LEN(COL)-len(replace(COL,'"',''))) > 2