日期:2014-05-17  浏览次数:20367 次

问一个重复数据查询的问题
这里有两条数据

可以看出除了ID和eLM_Order#两列外,其他列的值都是一样的,现在有一个问题:
如何在只知道第三列Alt_ParNo的前提下(Id和eLM_Order#都不知道),修改第一行数据的Ship_Qty值?

------解决方案--------------------
2005+数据库,uppdate语句可以加top 1 限定

------解决方案--------------------
引用:
引用:
以id排序 然后根据Alt_ParNo取Top1数据更新不就可以吗
不过Top 1是只能用在 Select 中,不能用在别的中么

比如lz这个 这样就可以:
update table set Ship_Qty='...' where id = (select top 1 id from table where Alt_ParNo='18010-14...' order by id )

------解决方案--------------------
引用:
引用:
引用:引用:
以id排序 然后根据Alt_ParNo取Top1数据更新不就可以吗
不过Top 1是只能用在 Select 中,不能用在别的中么
比如lz这个 这样就可以:
update table set Ship_Qty='...' where id = (select top……

取第三条的话 结合TOP,IN, NOT in,ORDER BY 取出要更新的id就可以,
还有一种方法就是查询时用ROW_NUMBER()函数 给要处理的数据添加一排序列(比如RowNumber列),然后想更新那条直接where RowNumber='' 就可以了