本文介绍了写一个更新查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我的选择查询返回以下数据集

Hi everyone,

My select query returns following dataset

ID      Col2    selected
------------------------
13	449	0
13	3804	0
13	3805	0
13	3806	0
230	274	0
230	1589	0
650	2375	0
911	1147	0
963	1157	0
1010	1196	0
1010    2000    0
1130	1410	0
1130	1456	0
1130	1910	0


现在,我想编写一个更新查询,以更新每个ID的第一行.所以欲望的结果是这样的.



Now I want to write an update query which updates first row of each ID. So the desire result is like this.


ID      Col2    selected
------------------------
13	449	1
13	3804	0
13	3805	0
13	3806	0
230	274	1
230	1589	0
650	2375	1
911	1147	1
963	1157	1
1010	1196	1
1010    2000    0
1130	1410	1
1130	1456	0
1130	1910	0



在此先感谢...:-)



Thanks in Advance..... :-)

推荐答案

UPDATE MyTable
SET Selected = 1
WHERE (id, Col2) IN (SELECT mt2.Id, MIN(mt2.Col2)
                     FROM MyTable mt2
                     GROUP BY mt2.Id)




or

UPDATE MyTable
SET Selected = 1
WHERE NOT EXISTS (SELECT 1
                  FROM MyTable mt2
                  WHERE mt2.Id = MyTable.Id
                  AND   mt2.Col2 < MyTable.Col2)



这篇关于写一个更新查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-14 16:01