如果有经常使用触发器或者写存储过程的同学,那么一定不会少用判断语句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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐