流程控制
选择分支结构
--某用户银行卡号为'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