-
2021-05-06 07:01:16
条件判断语句可以作为程序段的逻辑结构跳转,根据不同条件执行不同的程序段,也可以在单条SQL语句内部使用,根据不同条件进行更新选择取值。
三种数据库条件判断语句都有if和case,每种数据库语法存在些微差别。
oracle:
1、if语句:
if condition then
sql_statement
elsif condition then
sql_statement
else
sql_statement
end if;
2、case语句:
case value
when a then
sql_statement;
when b then
sql_statement;
when c then
sql_statement;
when d then
sql_statement;
else
sql_statement;
end case;
case
when condition then
sql_statement;
when condition then
sql_statement;
when condition then
sql_statement;
when condition then
sql_statement;
else
sql_statement;
end case;
3、decode函数
判断条必需等于具体的值,不为大于小于等带比较的数值.decode函数是oracle的特有的判断语句。
例子:decode(性别,'1' ,'男','女')
sqlserver:
1、if语句:由于sqlserver中没有then 和 end if 结束符,所以如果if语句后需要执行包含多条语句的语句块,必须使用begin end 否则只执行一条语句。
if condition
begin
sql_statement
end
else if condition
begin
sql_statement
end
else
begin
sql_statement
end
2case语句
case value
when a then
sql_statement
when b then
sql_statement
when c then
sql_statement
else
sql_statement
end;
case
when condition then
sql_statement
when condition then
sql_statement
when condition then
sql_statement
else
sql_statement
end;
mysql:
1、if语句
IF condition THEN
sql_statement;
ELSEIF condition THEN
sql_statement;
ELSE
sql_statement;
END IF;
2、case语句
CASE value
WHEN a THEN
sql_statement;
WHEN b THEN
sql_statement;
ELSE
sql_statement;
END case ;
CASE
WHEN condition THEN
sql_statement;
WHEN condition THEN
sql_statement;
ELSE
sql_statement;
END CASE;
区别和联系:三种数据库都有if 和case 条件判断语句,但是三种语法还是有区别的。
1、if条件选择语句的区别oracle的elsif是关键字缺一个E;sqlserver的if 语句没有then和end if 关键字,所以需要用begin end 把满足判断条件后需要执行的语句块引起来,否则满足条件后只执行第一条语句,sqlserver的else if 关键字中间需要空格分开;mysql的elseif关键字直接连起来。
2、case when 语句都有两种用法,第一种是有唯一值的条件判断,则把变化的值变量放到case 后,值放到when后即可,如果是判断条件,则case后为空,所有条件都放到when 和then中间执行。
更多相关内容 -
SQL——条件判断语句
2022-04-02 09:00:00SQL之条件判断语句(if、case when、nvl、coalesce)的用法详解目录
条件判断语句 用于为查询字段的值添加判断条件,区别于when!
常用于动态分区!
-
if
select
if(condition,true_value,false_value)
from tb
例:对男女人数分别进行计算,
计算男的人数时,将性别男标记为数字1,女为数字0
计算女的人数时,将性别女标记为数字1,男为数字0
最终将数字累加
select dept_id,
sum(if(sex='男',1,0)) [as] malenum,
sum(if(sex='女',1,0)) [as] femalenum
from emp_sex group by dept_id;
-------------------------------------------
统计每个部门男女各多少人
用group by:
select dept_id,sex,count(*)
from emp_sex group by dept_id,sex;
-
case when
统计每个部门男女各多少人
select dept_id,
sum(case when sex='男' then 1 else 0 end) [as] malenum,
sum(case when sex='女' then 1 else 0 end) [as] femalenum
from emp_sex group by dept_id;
select *, case when score >=80 then '优秀' when score >=60 and score <80 then '及格' when score >40 and score <60 then '不及格' else '渣' (when score <=40 then '渣') end [as] score_level from stu_score ;
-
nvl
nvl(v1,v2) ,如果v1不为空,取v1,如果为空,取v2
注Ⅰ:
select nvl(a.id,b.id) from a full join b on a.id=b.id ;
<=等价=>
select nvl(b.id,a.id) from a full join b on a.id=b.id ;
注Ⅱ:
select nvl(a.name,b.name) from a full join b on a.id=b.id ;
<=不等价=>
select nvl(b.name,a.name) from a full join b on a.id=b.id ;
-
coalesce
coalesce(v1,v2,v3,v4...) 返回第一个非null的值
举例:
coalesce(100,null,200,null,120) --> 100
coalesce(null,200,null,120) --> 200
常用:coalesce(字段)
-
mysql条件判断语句讲解
2021-01-18 18:33:44MySQL的判断语句有两种,if,switch语句,这两种语句都可以用来做为mysql的条件判断语句,但是它们各自又都有不同,今天给大家讲解这;两种判断语句的不同。《php与MySQL权威指南》第3章php基础,本章介绍了PHP的...MySQL的判断语句有两种,if,switch语句,这两种语句都可以用来做为mysql的条件判断语句,但是它们各自又都有不同,今天给大家讲解这;两种判断语句的不同。
《php与MySQL权威指南》第3章php基础,本章介绍了PHP的工作原理及发展状况,并通过一些简单的示例对PHP基础语法、变量和常量、数据类型、数据类型之间的转换、表达式和运算符,以及流程控制语句等知识点进行了介绍。本节为大家介绍条件判断语句。
3.10.2条件判断语句
顺序结构的程序虽然能解决计算和输出等问题,但进行判断后就不能再选择了。对于要先做判断再做选择的问题就要使用分支结构,这种结构又称为选择结构或条件结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序执行。分支结构程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。分支结构适合于带有逻辑或关系比较等条件判断的计算。即程序在执行过程中依照条件的结果来改变程序执行的顺序,满足条件时执行某一语句块,反之则执行另一语句块。
1.if语句
if、else和elseif语句经常一起被使用,这3个语句中只有if可以单独使用,而else和elseif语句则需要与if语句结合使用。
语句格式:
-
makefile条件判断语句和函数
2022-02-02 19:22:091.makefile中支持条件判断语句 可以根据条件的值来决定make的执行 可以比较两个不同变量或者变量和常量值 ifxxx(arg1,arg2) else endif 注意事项:条件判断语句只能用于控制make实际执行的语句;但是,不能控制...1.makefile中支持条件判断语句
可以根据条件的值来决定make的执行
可以比较两个不同变量或者变量和常量值ifxxx(arg1,arg2) else endif
注意事项:条件判断语句只能用于控制make实际执行的语句;但是,不能控制规则中命令的执行过程。
工程经验:
条件判断语句之前可以有空格,但不能有Tab字符(’\t’)
在条件语句中不要使用自动变量($@, $^, $<)
一条完整的条件语句必须位于同一个makefile中
条件判断类似C语言中的宏,预处理阶段有效,执行阶段无效
make在加载makefile时:
首先计算表达式的值(赋值方式不同,计算方式不同)
根据判断语句的表达式决定执行的内容2.函数定义及调用
make解释器提供了一系列的函数供makefile调用
在makefile中支持自定义函数实现,并调用执行
通过define关键字实现自定义函数自定义函数的语法:
函数定义:define func1 @echo "My name is $(0)" //打印func1函数的第0个参数,本身 endef define func2 @echo "My name is $(0)" //打印func1函数的第0个参数,本身 @echo "Param => $(1)" endef
函数调用:
test : $(call func1) $(call func2, CKY)
深入理解自定义函数:
自定义函数是一个多行变量,无法直接调用
自定义函数是一种过程调用,没有任何的返回值
自定义函数用于定义命令集合,并应用于规则中make解释器中的预定义函数:
make的函数提供了处理文件名,变量和命令的函数
可以在需要的地方调用函数来处理指定的参数
函数的在调用的地方被替换为处理结果预定义函数的调用:
问题:为什么自定义函数和预定义函数的调用形式完全不同?
本质剖析:
makefile中不支持真正意义上的自定义函数
自定义函数的本质是多行变量
预定义的call函数在调用时将参数传递给多行变量
自定义函数是call函数的实参,并在call中被执行.PHONY : test define func1 @echo "My name is $(0)" endef define func2 @echo "My name is $(0)" endef var1 := $(call func1) var2 := $(call func2) var3 := $(abspath ./) var4 := $(abspath test.cpp) test : @echo "var1 => $(var1)" @echo "var2 => $(var2)" @echo "var3 => $(var3)" @echo "var4 => $(var4)"
3.变量与函数的综合实例
实战需求:
自动生成target文件夹存放可执行文件
自动生成objs文件夹存放编译生成的目标文件(*.o)
支持调试版本的编译选项
考虑代码的扩展性工具原料:
$(wildcard _pattern):获取当前工作目录中满足_pattern的文件或目录列表
$(addprefix _prefix,_names):给名字列表_name中的每一个名字增加前缀_prefix关键技巧:
(1)自动获取当前目录下的源文件列表(函数调用)
SRCS := $(wildcard *.c)
(2)根据源文件列表生成目标文件列表(变量的值替换)
OBJS := $(SRCS:.c=.o)
(3)对每一个目标文件列表加上路径前缀(函数调用)
OBJS := ( a d d p r e f i x p a t h / , (addprefix path/, (addprefixpath/,(OBJS))
CC := gcc MKDIR := mkdir RM := rm -fr DIR_OBJS := objs DIR_TARGET := target DIRS := $(DIR_OBJS) $(DIR_TARGET) TARGET := $(DIR_TARGET)/hello-makefile.out # main.c const.c func.c SRCS := $(wildcard *.c) # main.o const.o func.o OBJS := $(SRCS:.c=.o) # objs/main.o objs/const.o objs/func.o OBJS := $(addprefix $(DIR_OBJS)/, $(OBJS)) .PHONY : rebuild clean all $(TARGET) : $(DIRS) $(OBJS) $(CC) -o $@ $(OBJS) @echo "Target File ==> $@" $(DIRS) : $(MKDIR) $@ $(DIR_OBJS)/%.o : %.c ifeq ($(DEBUG),true) $(CC) -o $@ -g -c $^ else $(CC) -o $@ -c $^ endif rebuild : clean all all : $(TARGET) clean : $(RM) $(DIRS)
make DEBUG:=true
-
MySQL的简单条件判断语句
2021-01-28 05:50:29在mysql中条件判断语句常用于数据转换,基于现有数据创建新的数据列,使用场景还是比较多。基础样式:casewhen`条件`then`结果`else`默认结果`end在同一条判断语句中可以有一个到多个判断条件:casewhen0`条件`then`... -
mysql条件判断语句if的使用
2021-02-01 19:52:07mysql条件判断语句if的使用:先判断数据库中是否存在是否存在指定值存在就修改不存在就添加。这里我就用啦mysql存储过程的if语句DROP PROCEDURE IF EXISTS 过程名;CREATE PROCEDURE 过程名(IN trueName VARCHAR(100),... -
C语言条件判断语句:if、else if、else
2021-05-20 13:01:561)简单介绍三种形式的条件判断语句:if、else if、elseif:if(表达式)执行语句if:判断表达式内容,如果为true(真),就执行语句else if:if(表达式)执行语句else if(表达式1)执行语句1......(很多的else if)else if... -
JS中的一些条件判断语句
2021-08-18 20:20:501.if语句 满30减20用程序表示 var a=30; if(a>=30){ console.log(a-20); } if(条件表达式){ 语句块 } 如果语句块之间只有一行代码,大括号可以省略 2.if-else语句 满100减20否则打九折 var a=90; if(a>=100)... -
21.shell语言之if条件判断语句
2022-04-13 08:59:121、[ ]表示条件测试。注意这里的空格很重要。要注意在’[‘后面和’]'前面都必须要有空格 2、在shell中,then和fi是分开的语句。如果要在同一行里面输入,则需要用分号将他们隔开。 3、注意if判断中对于变量的处理,... -
excel中if多条件判断语句
2021-03-10 09:08:36在excel中需要使用到if函数进行条件限制,如果是多条件的情况,使用and方法如下: 微软将if与and,or,not函数配合使用官方文档 IF(AND(A2>0,B2<100),TRUE, FALSE) TRUE和FALSE分别代表括号内条件成立时单元格... -
按键精灵脚本讲解(5)条件判断语句
2021-07-28 05:24:16条件判断语句假如我们要检查屏幕上某个点是否为黑色,进而让按键精灵执行其他语句,这就需要不断地去检测。要让按键精灵为我们检测,可以利用条件判断语句不断地去验证。下面是“控制命令”上的辅助区域。下面针对上... -
Linux Shell之if条件判断语句
2019-04-08 12:49:171.条件判断语句概述 if条件判断语句在Shell自动化运维脚本的开发中至关重要,利用条件判断可实现对象(文件、目录)的类型、状态、属性判断,数值比较、字符串比较以及更加复杂的逻辑。 if条件判断的基本语法是: if... -
第二章 条件判断语句(分支语句)& 循环语句(上)| C语言[0基础 入门 保姆级别 通俗易懂 教程]
2022-01-16 09:34:50第二章 条件判断语句(分支语句)& 循环语句(上)| C语言[0基础 入门 保姆级别 通俗易懂 教程] -
makefile--条件判断语句
2018-10-04 16:04:57条件判断语句 1. makefile中支持条件判断语句 可以根据条件的值来决定make的执行 可以比较两个不同变量或者变量和常量值 ifxxx (arg1,arg2) #do true else #do false #endif 注意事项: 条件判断语句只能用于... -
if 条件判断语句的用法
2019-08-10 18:22:27在python中,有三种条件判断语句,分别是单向条件判断语句(if...),双向条件判断语句(if...else...)和多向条件判断语句(if...elif...elif...else...) 1.单项条件判断语句(if...) if...是三项中最简单的一个... -
条件判断语句
2019-01-07 20:06:00流程控制语句 ...1.条件判断语句 2.条件分支语句 3.循环语句 条件判断语句 if语句 语法一: if(条件表达式){ 语句... } 语法二: if(条件表达式){ 语句... }else{ ... -
Vue 的条件判断语句
2019-01-10 21:06:33Vue 的条件判断语句 v-if 条件判断用 v-if 指令 代码示例:在元素中使用 v-if 指令 <div id="app"> <input type="button" value='toggle' @click='flag=!flag'> ... -
python之条件判断语句
2019-04-07 17:27:19if 要判断的条件: 条件成立时,要做的事 eg:判断是否可以进入网吧 2、if嵌套 if 要判断的条件: 条件成立时,要做的事情 elif 条件2: ... else: 条件不成立时,要做的时请 elif和else都必须和if联合使用,... -
python条件判断语句,两种简洁的写法
2019-09-02 17:30:01Python返回真假值(True or False)小技巧,本文探讨的是最简洁的条件判断语句写法,本文给出了两种简洁写法,需要的朋友可以参考下 如下一段代码: def isLen(strString): if len(strString)>6: return True ... -
Python中条件判断语句的简单使用方法
2020-02-23 21:59:27这篇文章主要介绍了Python中条件判断语句的简单使用方法,是Python入门学习中的基础知识,需要的朋友可以参考下 最简单的条件语句: if expression: expr_true_suite 如上,if是关键字,expression是条件表达式,... -
学习C#之条件判断语句
2017-12-17 18:05:01一、单向判断if 单向判断:对某一种符合的情况作相应的操作 样式: * if(真假表达式){ ...执行流程:首先判断真假表达式的真假,若为真,则进入{ }执行里面的操作语句。若为假,则直接跳过if语句。 -
c++基础篇4(条件判断语句)
2019-04-12 14:55:131.判断输入数是否为奇数 #include<iostream> using namespace std; void main() { int input; cout << "请输入整数" << endl; cin >> input; if (input % 2 != 0) { cout << ... -
golang if 条件判断语句 简介
2020-07-14 14:56:45if 条件判断语句 { 执行语句 } ②:双分支 if 条件判断语句 { 执行语句 }else{ 执行语句 } ③:多分支 if 条件判断语句 { 执行语句 }else if 条件判断语句{ 执行语句 }....... -
python中的条件判断语句
2017-12-07 10:56:51python中的条件判断 -
makefile中使用条件判断语句
2018-02-28 19:51:27条件判断语句举例 Make 可以根据运行时不同情况选择执行不同分支。 libs_for_gcc = -lgnu normal_libs = foo : $(OBJS) ifeq ($(CC), gcc) # 不缩进 $(CC) -o foo $(OBJ) $(libs_for_gcc) # 传递命令,缩进 ... -
python两种简洁的条件判断语句写法
2018-11-21 15:40:56了Python返回真假值(True or False)小技巧,本文探讨的是最简洁的条件判断语句写法,本文给出了两种简洁写法,需要的朋友可以参考下 如下一段代码: def isLen(strString): if len(strString)>6: return True ... -
mysql-if条件判断语句
2019-01-23 01:37:14查询读者信息表,根据读者的余额判断读者的会员等级。 1、根据身份证号查询读者的余额 2、如果用户余额不小于500,则用户为黄金会员;如果用的余额不小于300,则用户为高级会员;如果用户余额不小于100,则为普通... -
SQL中的条件判断语句(case when zhen if,ifnull)用法
2019-09-06 10:30:03简介: case具有两种格式。简单case函数和case搜索函数...还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。 --简单case函数 case sex when '1' then '男' when '2' ...