识别并删除引号中包含的记录

问题描述 投票:-1回答:3

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

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

谢谢你的帮助

sql
3个回答
0
投票

我向你们所有人道歉,因为我的问题很糟糕。我想我能够根据你的建议找到答案!

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

非常感谢你们 - 你们是最棒的!


0
投票

你可以这样做:

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

您基本上比较了删除所有引号后字段的长度。这是确定特定字符出现次数的简便方法。

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


-1
投票

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

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
© www.soinside.com 2019 - 2024. All rights reserved.