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

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 如果有经常使用触发器或者写存储过程的同学,那么一定不会少用判断语句if_else假如有一个需求,就是通过语句的方式添加一条记录,添加记录前需要判断当前文本的前60%的文本不能有所重复,其实就是判断某个字段文本不能重复的需求
作者:小5聊基础
简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑
编程原则:Write Less Do More

1、 len函数

select len('美人鱼最怕遇到谁?')*0.3

image.png

2、convert函数

默认情况下,是不会四舍五入的

select convert(int,len('美人鱼最怕遇到谁?')*0.3)

image.png

3、substring函数

select '%'+substring('美人鱼最怕遇到谁?',1,convert(int,len('美人鱼最怕遇到谁?')*0.3))+'%'
select '%'+substring('美人鱼最怕遇到谁?',1,len('美人鱼最怕遇到谁?')*0.3)+'%'

image.png

4、if_else使用

查看测试效果
image.png
判断语句,添加失败效果
image.png
判断语句,添加成功效果

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
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
5天前
|
SQL Oracle 关系型数据库
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
|
10天前
|
SQL 数据库 数据库管理
数据库SQL函数应用技巧与方法
在数据库管理中,SQL函数是处理和分析数据的强大工具
|
11天前
|
SQL 数据库 索引
SQL中COUNT函数结合条件使用的技巧与方法
在SQL查询中,COUNT函数是一个非常常用的聚合函数,用于计算表中满足特定条件的记录数
|
11天前
|
SQL 关系型数据库 MySQL
SQL日期函数
SQL日期函数
|
1月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
1月前
|
SQL 关系型数据库 C语言
PostgreSQL SQL扩展 ---- C语言函数(三)
可以用C(或者与C兼容,比如C++)语言编写用户自定义函数(User-defined functions)。这些函数被编译到动态可加载目标文件(也称为共享库)中并被守护进程加载到服务中。“C语言函数”与“内部函数”的区别就在于动态加载这个特性,二者的实际编码约定本质上是相同的(因此,标准的内部函数库为用户自定义C语言函数提供了丰富的示例代码)
|
3月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
85 13
|
3月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
3月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
56 6
|
2月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
324 0