我正在尝试按照以下方式执行语法错误,请帮助
DELETE FROM table
WHERE col1 = 2
AND EXISTS (
SELECT COUNT(*)
FROM table
WHERE col1 = 3
) > 2 ;
我只有在cout大于2
时才需要删除答案 0 :(得分:3)
where
中有两个逻辑条件:exists
和> 2
。删除其中一个,如:
DELETE table
WHERE col1 = 2
AND
(
SELECT COUNT(*)
FROM table
WHERE col1 = 3
) > 2
答案 1 :(得分:3)
你可能会错过EXISTS
?
答案 2 :(得分:2)
目前还不清楚你实际上要做什么,而且我们理解一个无效的语法并不比SQL-server更容易。
HAVING子句允许您根据计数过滤结果:
SELECT COUNT(*)
FROM table
WHERE col1 = 3
HAVING COUNT(*) > 2
但是在这些行之间进行阅读似乎是试图从表中删除重复项,我会这样做:
DELETE FROM table
WHERE (id, col1) NOT IN
(SELECT
id,
MAX(col1)
FROM table
GROUP BY id
);
答案 3 :(得分:1)
以下是没有意义的... EXISTS (...) > 2
。