首页 > 其他分享 >13.流程控制

13.流程控制

时间:2022-10-17 12:45:51浏览次数:75  
标签:控制 13 CardMoney -- 流程 when 银行卡 5000 CardId

流程控制

选择分支结构

--某用户银行卡号为'6225540436726367',
--该用户执行取钱操作,取钱5000元,余额充足则进行取钱操作,
--并提示“取钱成功”,否则提示“余额不足”
declare @balance money;
select @balance = 
(select CardMoney from BankCard where CardId='6225540436726367');
if @balance>=5000 --可以取钱
	begin
		update BankCard set CardMoney = CardMoney - 5000
		where CardId = '6225540436726367';
		insert into CardExchange(CardId,MoneyInBank,MoneyOutBank)
		values ('6225540436726367',0,5000);
		print '取钱成功';
	end
else    --不可以取钱
	begin
	print '余额不足5000';
	end 

--查询银行卡信息,将银行卡状态1,2,3,4分别转换
--为汉字(正常,挂失,冻结,注销)
--并且根据银行卡余额显示银行卡等级
--30万以下为普通用户,以上为VIP用户
--显示列名分别为卡号,身份证,姓名,余额,用户等级,银行卡状态
select CardId 卡号,AccountCode 身份证,RealName 姓名,CardMoney 余额,
case 
	when CardMoney > 300000 then 'VIP用户'
	else '普通用户'
end '用户等级',
case CardState
	when 1 then '正常'
	when 2 then '挂失'
	when 3 then '冻结'
	when 4 then '注销'
	else '异常'
end '银行卡状态'
from BankCard 
inner join AccountInfo on BankCard.AccountId = AccountInfo.AccountId

循环结构

--循环打印1-10
declare @i int = 1;
while @i<=10 
begin
	print @i;
	set @i = @i+1;
end

--循环打印九九乘法表 
--特殊符号 char(9) 制表符  char(10) 换行符
declare @i int = 1;
while @i<=9 
	begin
		declare @str varchar(200) = '';
		declare @j int = 1;
		while @j<=@i 
			begin
				set @str = @str + cast(@i as varchar(1)) + '*' 
				+ cast(@j as varchar(1)) + '=' 
				+ cast(@i*@j as varchar(2)) + char(9);
				set @j = @j+1;
			end
		print @str;
		set @i = @i+1;
	end

标签:控制,13,CardMoney,--,流程,when,银行卡,5000,CardId
From: https://www.cnblogs.com/Starry-blog/p/16797316.html

相关文章