Sql 存在计数(*)
我正在尝试做如下的事情,它给出了语法错误,请帮助Sql 存在计数(*),sql,sql-server,sql-server-2005,tsql,Sql,Sql Server,Sql Server 2005,Tsql,我正在尝试做如下的事情,它给出了语法错误,请帮助 DELETE FROM table WHERE col1 = 2 AND EXISTS ( SELECT COUNT(*) FROM table WHERE col1 = 3 ) > 2 ; 只有当cout大于2时,我才需要执行删除操作以下内容毫无意义。。。存在(…)>2 在中有两个逻辑条件,即存在,以及>2。删除其中
DELETE FROM table
WHERE col1 = 2
AND EXISTS (
SELECT COUNT(*)
FROM table
WHERE col1 = 3
) > 2 ;
只有当cout大于2时,我才需要执行删除操作以下内容毫无意义
。。。存在(…)>2
在中有两个逻辑条件,即存在,以及>2
。删除其中一个,如:
DELETE table
WHERE col1 = 2
AND
(
SELECT COUNT(*)
FROM table
WHERE col1 = 3
) > 2
您可能会错过EXISTS
?不清楚您实际想做什么,而且我们理解无效语法并不比理解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
);