Tsql 在sql中使用case语句更新多列 选择@calc 更新用户事务集DP=(大小写) 当(TotalBV>=201且TotalBV=601,TotalBV=1601,TotalBV=5001且TotalBV=15001且TotalBV=30001且TotalBV=50001)时,则(0.30*TotalPBV) else(空结束) 其中User\u Id=@UserId和赞助者\u Id=@SponsorId
上面是我正在使用的更新查询。现在它只更新一行特定的用户Id和赞助商Id。我如何一次检查多个用户Id和赞助商Id?而不是等于运算符在子句中使用Tsql 在sql中使用case语句更新多列 选择@calc 更新用户事务集DP=(大小写) 当(TotalBV>=201且TotalBV=601,TotalBV=1601,TotalBV=5001且TotalBV=15001且TotalBV=30001且TotalBV=50001)时,则(0.30*TotalPBV) else(空结束) 其中User\u Id=@UserId和赞助者\u Id=@SponsorId,tsql,sql-server-2005,Tsql,Sql Server 2005,上面是我正在使用的更新查询。现在它只更新一行特定的用户Id和赞助商Id。我如何一次检查多个用户Id和赞助商Id?而不是等于运算符在子句中使用 select @calc update UserTransaction set DP=(case when (TotalBV >= 201 and TotalBV < 600) then (0.1*TotalBV) when (TotalBV >= 601 and TotalBV <1600 ) then (0.15*Total
select @calc
update UserTransaction set DP=(case
when (TotalBV >= 201 and TotalBV < 600) then (0.1*TotalBV)
when (TotalBV >= 601 and TotalBV <1600 ) then (0.15*TotalBV)
when (TotalBV >= 1601 and TotalBV< 5000) then (0.18*TotalBV)
when (TotalBV >= 5001 and TotalBV< 15000) then (0.21*TotalBV)
when (TotalBV >= 15001 and TotalBV< 30000) then (0.24*TotalBV)
when (TotalBV >= 30001 and TotalBV< 50000) then (0.27*TotalBV)
when (TotalBV >= 50001) then (0.30*TotalPBV)
else null end)
where User_Id=@UserId and Sponsor_Id=@SponsorId
谢谢,如果我想同时为多个用户做同样的事情,我该如何使用它?
UPDATE UserTransaction
set DP=(CASE .. END)
WHERE user_id IN
(SELECT user_id
FROM TABLE)
AND sponsorid IN
(SELECT sponsorid
FROM TABLE)