如果有经常使用触发器或者写存储过程的同学,那么一定不会少用判断语句if_else
假如有一个需求,就是通过语句的方式添加一条记录,添加记录前需要判断当前文本的前60%的文本不能有所重复,其实就是判断某个字段文本不能重复的需求
1、 len函数
select len('美人鱼最怕遇到谁?')*0.3
2、convert函数
默认情况下,是不会四舍五入的
select convert(int,len('美人鱼最怕遇到谁?')*0.3)
3、substring函数
select '%'+substring('美人鱼最怕遇到谁?',1,convert(int,len('美人鱼最怕遇到谁?')*0.3))+'%'
select '%'+substring('美人鱼最怕遇到谁?',1,len('美人鱼最怕遇到谁?')*0.3)+'%'
4、if_else使用
- 查看测试效果
- 判断语句,添加失败效果
- 判断语句,添加成功效果
declare @num int --定义变量
declare @question varchar(800) --定义变量
declare @answer varchar(100) --定义变量
set @question='美人鱼最怕遇到谁?'
set @answer ='加菲猫'
select @num=count(1) from dati_list where question like '%'+substring(@question,0,len(@question)*0.6)+'%'
if(@num>0) --存在记录则不添加记录
begin
print '添加失败,记录已存在'
end
else --不存在记录,可添加
begin
insert into dati_list(datiGuid,question,answer,datiType,datiTypeText,addTime,updateTime)
values(newid(),
@question,
@answer,
'101','脑筋急转弯',getdate(),getdate());
print '添加成功';
end