while循环的批量价格修改

  • 作者:村长
  • 发布时间:2020-04-18 11:00
  • 分类:SQL Server
  • 标签: 热门推荐

while循环求解如下题目:

查询出[“食品”类] 商品的[最低团购价],如该价格低于 5 元,则【将所有“食品”类【商品】的团购价上调 10%】 =》 修改操作,【再次查询出加价之后的“食品”类商品的最低团购价】,如该价格仍低于 5 元,则将所有“食品”类商品的团购价再次上调 10%,[依次反复] 循环,直至所有“食品”类商品的最低团购价高于 5 元。


实现:

go
-- 声明变量
declare @categoryName nvarchar(30) = '食品',@price int,@categoryID int 
-- 赋值
set @categoryID = (select categoryID from category where categoryName = @categoryName)
set @price = (select min(currentPrice) from business.product where categoryID = @categoryID)

-- 是否满足循环开始
while @price < 6
begin
	--所有食品类,都要修改上调价格
	update business.product set currentPrice = currentPrice * 1.1 where categoryID = @categoryID
	-- 需要退出循环的关键,让这个最低团购价再验证一次是否大于等于5
	set @price = (select min(currentPrice) from business.product where categoryID = @categoryID)
end

-- 输出当前的最低团购价,判断是否都上调到大于等于5块钱
print '当前的团购价最低为:' + convert(nvarchar(10),@price)



  • php程序员面试笔试宝典
琉忆编程库
加载中...
TOP