识别并删除用引号引起来的记录

时间:2019-03-28 02:25:40

标签: sql

我已经导入了一个包含大约100,000条记录的表,其中一些记录需要删除。我想识别并删除所有记录,其中某个特定字段(称为MyQuery)包含用引号引起来的单词,但如果该字段中只有两个引号,则将它们删除。

例如,我想删除 “这是一个测验” - 但不是 - “这是“一项”测试”

非常感谢您的协助

3 个答案:

答案 0 :(得分:0)

您可以这样做:

DELETE
-- SELECT *   -- To test first!
FROM YourTable
WHERE LEN(MyQuery) - LEN(REPLACE(MyQuery, '"', '')) = 2;
AND MyQuery LIKE '"%"'

如果除去所有引号后的字段,则基本上是在比较长度。这是确定特定字符出现次数的简便方法。

在您发表评论之后,我添加了另一个条件,以便引号始终围绕该字段。

答案 1 :(得分:0)

我对所有人的道歉表示深深的疑问和清晰的结构。我想我能够根据您的建议得到答案!

select * from <table> where LEN(myquery) - LEN(REPLACE(myquery,'"','')) = 2 and myquery like '"%"'

非常感谢大家-您是最棒的!

答案 2 :(得分:-1)

您可以使用以下查询删除所有包含“”的记录,但以“”开头和结尾的记录除外:

DELETE From <TABLENAME> Where COL like '%"%' and (COL not like '"%' Or COL not like '%"')

或者,您可以使用:在这里,我们删除所有出现两次以上“

”的记录
DELETE FROM <TABLENAME> WHERE (LEN(COL)-len(replace(COL,'"',''))) > 2