Access中的写法
一张表 的内部更新
1. 筛选出 HTID,LDaiHAO 相同,个数大于2 的记录,将他们的Feature改成“共压”
UPDATE 线号表 T1
SET T1.Feature = '共压'
WHERE EXISTS (
SELECT 1
FROM (
SELECT HTID, LDaiHao
FROM 线号表
GROUP BY HTID, LDaiHao
HAVING COUNT(*) > 1
) T2
WHERE T1.HTID = T2.HTID AND T1.LDaiHao = T2.LDaiHao
);
这个SQL语句使用了一个子查询,根据HTID
和LDaiHao
进行分组计数,并仅选择出现次数大于1的组。在主查询中,我们使用EXISTS
保留字判断T1
表中的某一行是否存在对应的HTID
和LDaiHao
组,以满足上一步筛选出的组的要求。这个SQL语句应该可以满足您的需求,并且避免了返回多个字段的问题。
Sqlserver 中
UPDATE T1 SET T1.Feature = '共压'
FROM 线号表 T1
INNER JOIN (
SELECT HTID, LDaiHao
FROM 线号表
GROUP BY HTID, LDaiHao
HAVING COUNT(*) > 1
) T2 ON T1.HTID = T2.HTID AND T1.LDaiHao = T2.LDaiHao;
Mysql中
UPDATE 线号表 T1
JOIN (
SELECT HTID, LDaiHao
FROM 线号表
GROUP BY HTID, LDaiHao
HAVING COUNT(*) > 1
) T2 ON T1.HTID = T2.HTID AND T1.LDaiHao = T2.LDaiHao
SET T1.Feature = '共压';
2. 一张表 一个字段更新另一个字段
Update 线号表 a,线号表 b
Set b.TmpStr=a.TmpStr
Where a.LineNo=b.LineNo And a.TmpStr<>b.TmpStr
And a.TmpStr<>'' And a.InsertY>b.InsertY
Update 图框临时表 t1 ,
(Select A.HandleID, B.LBY
From 图框临时表 A Left Join 图框临时表 B
On B.HandleID = A.上方 Where A.LTY = 0) t2
Set t1.LTY = t2.LBY, t1.RTY = t2.LBY Where t1.HandleID = t2.HandleID