如何查找重复值,然后使用sql更新一个表中的字段?

时间:2019-03-24 15:05:02

标签: sql sql-server

我有下表:

表名: Tp

列: TpId | PId | TId

如何将PId重复的每一行的TId列更新为3。

3 个答案:

答案 0 :(得分:1)

具有EXISTS:

update  t
set tid = 3
from tp t
where exists (
  select 1 from tp
  where tpid <> t.tpid and pid = t.pid
)

我想tpid在您的表格中是唯一的。
请参见demo
如果您只想更新除第一行以外的所有重复行,那么:

update t
set tid = 3
from tp t
where exists (
  select 1 from tp
  where tpid < t.tpid and pid = t.pid
)

请参见demo

答案 1 :(得分:1)

您可以使用var n = 5; var a = new Array(n); for(var i=0;i<n;i++) a[i] = i; var result = new Array(n); var i = n; while(i) { var index = Math.floor(Math.random() * i); result[--i] = a[index]; a.splice(index,1); } document.getElementById('a').innerHTML = result;

<div id="a"></div>

答案 2 :(得分:1)

如果您需要更新重复了Pid的所有所有行,则可以使用以下代码:

update Tp set Tid=3 where Pid in
(
  select Pid
  from Tp
  group by Pid
  having COUNT(*) > 1
)