日期:2014-05-18  浏览次数:20523 次

更新符合条件的最后一条
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最大的