更新一定数量的记录

时间:2019-06-24 20:01:26

标签: sql tsql

我需要更新一半记录的值。我打算用下面的查询更新记录,但是我一直收到错误消息:“当EXISTS不引入子查询时,只能在选择列表中指定一个表达式。”是否有更好的方法来更新一半结果的价值?任何指导将不胜感激。

begin transaction 
update ShoppingCart
SET EpayOrder = '1789614'
WHERE EpayOrder 
in (
select top 188 * from ShoppingCart s
inner join Animal a on a.AnimalPK = s.AnimalFK
inner join Users u on s.UserFK = u.UserPK
where EpayOrder = '1789614' --and s.Deleted is null


)
commit
rollback

一半的结果在Epayorder列下的值应为1789614A,而另一半则保持相同的值1789614。

2 个答案:

答案 0 :(得分:1)

将*更改为特定列。但是,您的查询不会像您提到的那样将任何内容更新为“ 1789614A”。

ScoringSiteDataDF = ScoringSiteDataDF.groupby(['Exam+DBN+Section'])['Exam+DBN+Section'].value_counts().to_frame('count')
print("Maximum count: " + str(ScoringSiteDataDF['count'].max()))

答案 1 :(得分:0)

请选择所需的列,而不是在子查询中使用*

更改此

SELECT TOP 188 * FROM ShoppingCart s

对此

SELECT TOP 188 EPayOrder FROM ShoppingCart s