我有下表:
表名: Tp
列: TpId | PId | TId
如何将PId重复的每一行的TId列更新为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
)