当前位置: 代码迷 >> Sql Server >> 更新符合条件的最后一条,该如何处理
  详细解决方案

更新符合条件的最后一条,该如何处理

热度:34   发布时间:2016-04-27 13:26:37.0
更新符合条件的最后一条
Update OP_AD_Statistics Set StaADSource='xxxx', StaClickNum= 2 Where StaID =(Select StaID from OP_AD_Statistics Where StaADSource='xxxx' order by StaID )
这样会报错 除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效,怎么改呢

------解决方案--------------------
你得把你的排序拿到外面或者加上top之类的。
------解决方案--------------------
SQL code
;With cte_update As (/*n 控制要更新的行数*/Select Top (n) * From OP_AD_Statistics Where StaADSource='xxxx' Order by StaID)update cte_update     Set StaADSource = 'xxxx' ,                StaClickNum = 2
------解决方案--------------------
Update OP_AD_Statistics a Set StaADSource='xxxx', StaClickNum= 2 Where dt= (Select max(dt) from OP_AD_Statistics Where StaADSource='xxxx' and a.StaID =StaID )

你要按什么来算最后一条。这个表的最后一条?以上是StaID 相同,dt最大的
  相关解决方案