【小5聊】Sql Server基础之IF ELSE的使用,以及len和substring、convert函数的使用

本文介绍了在SQL中如何利用LEN、CONVERT、SUBSTRING函数结合IF_ELSE语句来实现数据插入前的条件判断。具体场景为在添加记录时,首先计算文本的前60%部分,然后检查数据库中是否存在相同内容,如果存在则不添加,否则插入新记录。示例代码展示了整个判断和插入过程。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈小5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值