Sql 如何在where条件下使用子查询?

Sql 如何在where条件下使用子查询?,sql,oracle,Sql,Oracle,我只想更新行,这给了我选择权。这怎么可能 UPDATE user.table1 SET column = 'N' where ( select count( * ) number, colum1, clolum2 from user.table1 group by colum1, clolum2 having count(*) = 1 ); WHERE语句不完整 例如: .... 其中name='tispokes' 您可以使用子查询afaik和iirc来代替tispo

我只想更新行,这给了我选择权。这怎么可能

UPDATE user.table1 
  SET column = 'N'
where (
  select count( * ) number, colum1, clolum2 
  from user.table1
  group by colum1, clolum2 
  having count(*) = 1
);

WHERE语句不完整

例如: .... 其中name='tispokes'

您可以使用子查询afaik和iirc来代替tispoke

也适用于:

。。。何处存在(*您的子查询*);

查询可以按如下方式构造:

`UPDATE user.table1 a
SET a.column =(SELECT COUNT(1)
              FROM table_name  b
              WHERE a.id=b.id
              AND a.mytype=b.mytype
         )
WHERE EXISTS( ....)`

请提供样本数据、预期结果和逻辑解释。另外,您的查询引用的是一个表还是两个表?请看:无论如何,这是个坏主意。您不应该存储来自其他表数据的“计算”数据。添加计算列或创建视图。或者至少使用触发器。我可以在我的where条件后添加“Excists”吗?以便更新所选的每一行?是的,exists也适用于您的子查询