SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例

SQL Server判断语句(IF ELSE/CASE WHEN )

执行顺序是 – 从上至下 – 从左至右 --,所当上一个条件满足时(无论下面条件是否满足),执行上个条件,当第一个条件不满足,第二个条件满足时,执行第个二条件


1、IF ELSE

不能用在SELECT中,只能是块,比如:

IF …

BEGIN

…(代码块)

END

ELSE (注意这里没有ELSE IF,要实现只能在下面的块中用IF判断)

BEGIN

…(代码块)

END

列:

declare @num int --定义变量
set @num=1 --赋值变量
if(@num>10)
begin
select * from 表1
end
else
begin
if(@num<0)
select Top(20) * from 表2
else
print @num
end


2、CASE WHEN THEN ELSE END

可以在SELECT中使用,但是要包括END结尾

CASE …

WHEN … (条件/代码块) THEN …(返回值/case when then else end)

ELSE …(可省略)

END

列:

declare @num int --定义变量
set @num=111 --赋值变量
select @num,
case
when @num<=100 then case
when @num>=80 then ‘A'
when @num>=60 then ‘B'
else ‘C' end
when @num>=200 then ‘优秀'
else ‘haha'
end

到此这篇关于SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例的文章就介绍到这了,更多相关SQL Server使用判断语句内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • IDEA连接MySQL提示serverTimezone的问题及解决方法

    今天,在使用IDEA软件连接MySQL数据库时,一直报时区相关的错误(其实吧,以前也遇到过这个错误) 错误: Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually. 错误页面: 解决办法一 之前的解决办法是: "Data Sources and Drivers" ~ "General" ~ "URL" 中指明

  • SQL Server 2014 数据库中文版安装图文教程

    SQL Server 2014三大新特性:集成内存OLTP.BI和混合云搭建,那么记录一下我们的安装过程及配置. 软件环境准备 SQL Server 2014版支持的操作系统有:Windows Server 2008.Windows Server 2008 R2.Windows Server 2012.Windows Server 2012 R2.标准版还支持 Windows 7.Windows 8.Windows 8.1 操作系统. 安装 .Net Framework 3.5 sp1 如果本机

  • 教你怎么用python连接sql server

    先利用pip安装pymssql库 pip install pymssql 具体连接.测试代码: # server默认为127.0.0.1,如果打开了TCP动态端口的需要加上端口号,如'127.0.0.1:1433' # user默认为sa # password为自己设置的密码 # database为数据库名字 server = '127.0.0.1' user = "sa" password = "123456" database = "pubs"

  • 解决sql server 数据库,sa用户被锁定的问题

    sql server 数据库,sa用户被锁定 1.打开数据库--用Windows身份登录数据库 2.登录名--双击sa(打开属性) 3.常规--设置密码--确定 4.状态--登录:启用:去掉登陆已锁定勾选,--确定 5. 右击服务器名--属性 6.安全性--选中 SQL Server 和 Windows 身份验证模式--确定 7.右击服务器名--重新启动--关闭数据库连接,退出程序--用sa登录到数据库--解决 SQL Server账号密码(sa)登录失败 错误原因:18456 其实以前经常用的

  • SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法

    一.错误提示 : 该作业失败. 无法确定所有者 WIN-3TH1KNIT12D\Administrator (拥有作业 Database_Backup.step1)是否有服务器访问权限 (原因: 无法获取有关 Windows NT 组/用户 'WIN-3TH1KNIT12D\Administrator' 的信息,错误代码 0x534. [SQLSTATE 42000] (错误 15404)). 二.说明: 更改作业计划的所有者,不是数据库所有者 三.解决方法: 下面是其他网友的补充方法 下午准备

  • SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例

    SQL Server判断语句(IF ELSE/CASE WHEN ) 执行顺序是 – 从上至下 – 从左至右 --,所当上一个条件满足时(无论下面条件是否满足),执行上个条件,当第一个条件不满足,第二个条件满足时,执行第个二条件 1.IF ELSE 不能用在SELECT中,只能是块,比如: IF - BEGIN -(代码块) END ELSE (注意这里没有ELSE IF,要实现只能在下面的块中用IF判断) BEGIN -(代码块) END 列: declare @num int --定义变量

  • Sql Server中判断表、列不存在则创建的方法

    一.Sql Server中如何判断表中某列是否存在 首先跟大家分享Sql Server中判断表中某列是否存在的两个方法,方法示例如下: 比如说要判断表A中的字段C是否存在两个方法: 第一种方法  IF EXISTS ( SELECT 1 FROM SYSOBJECTS T1 INNER JOIN SYSCOLUMNS T2 ON T1.ID=T2.ID WHERE T1.NAME='A' AND T2.NAME='C' ) PRINT '存在' ELSE PRINT '不存在' 第二种方法,短小

  • SQL Server中的SQL语句优化与效率问题

    很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: select * from table1 where name='zhangsan' and tID > 10000 和执行: select * from table1 where tID > 10000 and name='zhangsan' 一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那

  • 在SQL SERVER中查询数据库中第几条至第几条之间的数据SQL语句写法

    今天在写程序的时候,需要生成从开始id到结束id的sql语句.原来不需要这个功能现在就需要了. 在SQL SERVER中查询数据库中第几条至第几条之间的数据SQL语句如何写? 如:在SQL SERVER中查询数据库中第10条至30条之间的数据SQL语句如何写? ------解决方案-------------------- select top 20 * from 表 where id in (select top 30 id from 表 order by id)order by id desc

  • 在SQL Server中使用子查询更新语句

    测试环境准备 create table #table1 ( id int , name varchar(20) ); go create table #table2 ( id int , name varchar(20) ); go insert into #table1 ( id, name ) values ( 1, 'a' ), ( 2, null ), ( 3, 'c' ), ( 4, 'd' ), ( 5, 'e' ); insert into #table2 ( id, name )

  • 在SQL Server中查询资料库的TABLE数量与名称的sql语句

    在SQL Server中 每一个database裡都有一个系统所产生的table sysobjects这一个table中记录了database中所有的table名称 我们可以用下面的SQL语法作查询的动作 复制代码 代码如下: Select Name,id from sysobjects where xtype = 'U' 其中xtype='U'代表使用的table,若是使用xtype='S' 则代表系统预设的table 在系统table中还有一个名叫syscolumns的table 他记录了栏

  • SQL Server中的SELECT会阻塞SELECT吗

    前言 在SQL Server中,我们知道一个SELECT语句执行过程中只会申请一些意向共享锁(IS) 与共享锁(S), 例如我使用SQL Profile跟踪会话86执行SELECT * FROM dbo.TEST WHERE OBJECT_ID =1 这个查询语句,其申请.释放的锁资源的过程如下所示: 而且从最常见的锁模式的兼容性表,我们可以看到IS锁与S锁都是兼容的,也就是说SELECT查询是不会阻塞SELECT查询的. 现有的授权模式 请求的模式 IS S U IX SIX X 意向共享 (

  • SQL Server中identity(自增)的用法详解

    一.identity的基本用法 1.含义 identity表示该字段的值会自动更新,不需要我们维护,通常情况下我们不可以直接给identity修饰的字符赋值,否则编译时会报错 2.语法 列名 数据类型 约束 identity(m,n) m表示的是初始值,n表示的是每次自动增加的值 如果m和n的值都没有指定,默认为(1,1) 要么同时指定m和n的值,要么m和n都不指定,不能只写其中一个值,不然会出错 3.实例演示 不指定m和n的值 create table student1 ( sid int p

  • SQL Server中函数、存储过程与触发器的用法

    一.函数 函数分为(1)系统函数,(2)自定义函数. 其中自定义函数又可以分为(1)标量值函数(返回单个值),(2)表值函数(返回查询结果) 本文主要介绍自定义函数的使用. (1)编写一个函数求该银行的金额总和 create function GetSumCardMoney() returns money as begin declare @AllMOney money select @AllMOney = (select SUM(CardMoney) from BankCard) return

  • SQL Server中执行动态SQL

    在Sql Server查询语句中使用变量表示表名.字段名等动态查询方式叫动态查询. 当需要根据外部输入的参数来决定要执行的SQL语句时,常常需要动态来构造SQL查询语句,用得比较多的地方就是分页存储过程和执行搜索查询的SQL语句. 一个比较通用的分页存储过程,可能需要传入表名,字段,过滤条件,排序等参数,而对于搜索的话,可能要根据搜索条件判断来动态执行SQL语句. 在SQL Server中有两种方式来执行动态SQL语句,分别是sp_executesql和exec. sp_executesql相对

随机推荐