在oracle sql语句里有没有if

oracle 中if ..else 可以再pl/sql 中使用,如果是要在SQL语句中达到这种效果可以用case when 。

then 。else ..end;mysql数据库中CASE WHEN语句。

case when语句,用于计算条件列表并返回多个可能结果表达式之一。CASE 具有两种格式:简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。

CASE 搜索函数计算一组布尔表达式以确定结果。 两种格式都支持可选的 ELSE 参数。

语法简单 CASE 函数:复制代码 代码如下:CASE input_expressionWHEN when_expression THEN result_expression[ 。n ][ELSE else_result_expressionENDCASE 搜索函数:复制代码 代码如下:CASE WHEN Boolean_expression THEN result_expression[ 。

n ][ELSE else_result_expressionEND参数input_expression是使用简单 CASE 格式时所计算的表达式。Input_expression 是任何有效的 Microsoft? SQL Server? 表达式。

WHEN when_expression使用简单 CASE 格式时 input_expression 所比较的简单表达式。When_expression 是任意有效的 SQL Server 表达式。

Input_expression 和每个 when_expression 的数据类型必须相同,或者是隐性转换。占位符,表明可以使用多个 WHEN when_expression THEN result_expression 子句或 WHEN Boolean_expression THEN result_expression 子句。

THEN result_expression当 input_expression = when_expression 取值为 TRUE,或者 Boolean_expression 取值为 TRUE 时返回的表达式。result expression 是任意有效的 SQL Server 表达式。

ELSE else_result_expression当比较运算取值不为 TRUE 时返回的表达式。如果省略此参数并且比较运算取值不为 TRUE,CASE 将返回 NULL 值。

Else_result_expression 是任意有效的 SQL Server 表达式。Else_result_expression 和所有 result_expression 的数据类型必须相同,或者必须是隐性转换。

WHEN Boolean_expression使用 CASE 搜索格式时所计算的布尔表达式。Boolean_expression 是任意有效的布尔表达式。

结果类型从 result_expressions 和可选 else_result_expression 的类型集合中返回最高的优先规则类型。有关更多信息,请参见数据类型的优先顺序。

结果值简单 CASE 函数:计算 input_expression,然后按指定顺序对每个 WHEN 子句的 input_expression = when_expression 进行计算。返回第一个取值为 TRUE 的 (input_expression = when_expression) 的 result_expression。

如果没有取值为 TRUE 的 input_expression = when_expression,则当指定 ELSE 子句时 SQL Server 将返回 else_result_expression;若没有指定 ELSE 子句,则返回 NULL 值。 CASE 搜索函数:按指定顺序为每个 WHEN 子句的 Boolean_expression 求值。

返回第一个取值为 TRUE 的 Boolean_expression 的 result_expression。如果没有取值为 TRUE 的 Boolean_expression,则当指定 ELSE 子句时 SQL Server 将返回 else_result_expression;若没有指定 ELSE 子句,则返回 NULL 值。

下面分享一些mysql case when语句的例子。A. 使用带有简单 CASE 函数的 SELECT 语句在 SELECT 语句中,简单 CASE 函数仅检查是否相等,而不进行其它比较。

例子,使用 CASE 函数更改图书分类显示。复制代码 代码如下:USE pubsGOSELECT Category =CASE typeWHEN 'popular_comp' THEN 'Popular Computing'WHEN 'mod_cook' THEN 'Modern Cooking'WHEN 'business' THEN 'Business'WHEN 'psychology' THEN 'Psychology'WHEN 'trad_cook' THEN 'Traditional Cooking'ELSE 'Not yet categorized'END,CAST(title AS varchar(25)) AS 'Shortened Title',price AS PriceFROM titlesWHERE price IS NOT NULLORDER BY type, priceCOMPUTE AVG(price) BY typeGO注释,后来我试了一下不让用category=。

我使用的代码为:复制代码 代码如下:SELECTcase genderWHEN 1 THEN 'NAN'WHEN 0 THEN 'NV'end as genderFROMt_swidy_day_nutrient结果集:Category Shortened Title Price ------------------- ------------------------- -------------------------- Business You Can Combat Computer S 2.99 Business Cooking with Computers: S 11.95 Business The Busy Executive's Data 19.99 Business Straight Talk About Compu 19.99 avg==========================13.73 Category Shortened Title Price ------------------- ------------------------- -------------------------- Modern Cooking The Gourmet Microwave 2.99 Modern Cooking Silicon Valley Gastronomi 19.99 avg==========================11.49 Category Shortened Title Price ------------------- ------------------------- -------------------------- Popular Computing Secrets of Silicon Valley 20.00 Popular Computing But Is It User Friendly? 22.95 avg==========================21.48 Category Shortened Title Price ------------------- ------------------------- -------------------------- Psychology Life Without Fear 7.00 Psychology Emotional Security: A New 7.99 Psychology Is Anger the Enemy? 10.95 Psychology Prolonged 。

oracle sql语言中如何写if的判断,并循环

咦,刚有回答你一个问题。你这个是只判断table1.number>table2.number情况下才update。其他情况不考虑。

update table1 t3

set t3.number =

(select number

from (select t1.id, t1.number - t2.number number

from table1 t1, table2 t2

where t1.id = t2.id) t4

where t3.id = t4.id

and t4.number > 0)

where t3.id in (select t1.id

from (select t1.idt1.number - t2.number number

from table1 t1, table2 t2

where t1.id = t2.id) t4

where t4.number > 0);

commit;

oracle怎么写IF语句

如果是 SQL 语句里面使用。

使用 DECODE 或者 CASE WHEN

DECODE 的用法就是

DECODE(abc, 50, 'A', 'B')

CASE WHEN 的用法就是

CASE WHEN abc=50 THEN 'A' ELSE 'B' END

如果是在存储过程里面的话,就是简单的 IF/ELSE 了

SQL 语句的话,就是

SELECT

abc, DECODE(abc, 50, 'A', 'B')

FROM

ORACLE sql 里面可以用if 语句吗

insert 语句中值的顺序如果和表结构一致可以省略列名列表。

这个SQL的意思没看懂,我给分析一下看对不对,

你是不是想表达这个意思:

如果在yangao这个表中存在age3=4的数据,那么,就向yangao中插入一行数据,行数据的内容是(4,NULL,1).

如果是这样的话,那么IF用的是不对的。

在SQL里面条件的关键字是WHERE。

insert into yangao values(4,NULL,1)

where exists (select * from yangao where(AGE3=4));

commit;

但如果你想表达的是:

在yangao表中插入一条数据,如果存在(select * from yangao where(AGE3=4)) 这样的数据就提交的话,那么应该这么写:

insert into yangao values (4, NULL, 1);

select count(*) into n_count from yangao where (AGE3 = 4);

if n_count > 0 then

commit;

end if;

Oracle连接查询和sql语句中的条件判断有哪些

SELECT 1 UPLOAD, 0 SHENGJI, MR.BUSI_ID, MASTER.PERSON_ID, MASTER.ACNT_ID, MASTER.ID_NUM, MASTER.NAME, MASTER.SEX, MR.MIGRT_OUT_REGION, MR.OUT_OPERA_TIME, MR.OUT_OPERA_ID, MR.IN_OPERA_TIME, MR.MIGRATE_STATE, MR.MIGRT_IN_REGION, case when MR.MIGRT_IN_REGION is null then '未选择' else ARC.REGION_NAME end AS MIGRT_IN_REGION_NAME FROM ADPM_MIGRATE_CPA MASTER, ADPM_MIGRATE_INFO MR left join ADPM_REGION_CODE ARC on MR.MIGRT_IN_REGION = ARC.REGION_CODE WHERE MASTER.PERSON_ID = MR.PERSON_ID AND (MR.MIGRATE_STATE = '10' OR MR.MIGRATE_STATE = '20' OR MR.MIGRATE_STATE = '60'); SELECT 1 UPLOAD, 0 SHENGJI, MR.BUSI_ID, MASTER.PERSON_ID, MASTER.ACNT_ID, MASTER.ID_NUM, MASTER.NAME, MASTER.SEX, MR.MIGRT_OUT_REGION, MR.OUT_OPERA_TIME, MR.OUT_OPERA_ID, MR.IN_OPERA_TIME, MR.MIGRATE_STATE, MR.MIGRT_IN_REGION, case when MR.MIGRT_IN_REGION is null then '未选择' else ARC.REGION_NAME end AS MIGRT_IN_REGION_NAME FROM ADPM_MIGRATE_CPA MASTER, ADPM_MIGRATE_INFO MR, ADPM_REGION_CODE ARC WHERE MASTER.PERSON_ID = MR.PERSON_ID AND (MR.MIGRATE_STATE = '10' OR MR.MIGRATE_STATE = '20' OR MR.MIGRATE_STATE = '60') AND MR.MIGRT_IN_REGION = ARC.REGION_CODE(+);。

请问ORACLE 的SQL 能不能做类似于IF

可以!你说的是PL/SQL吧!是Oracle在标准SQL语言上的过程性扩展。

举例说明:

下面以根据雇员号输出补助,为补助非0的雇员增加100元补助,其他雇员增加200元补助为例。

SQL>DECLARE

v_empno emp.empno%TYPE;

v_comm emp.comm%TYPE;

BEGIN

SELECT empno,comm INTO v_empno,v_comm FROM emp

WHERE empno=&no;

dbms_output.put_line('雇员原补助:' | | v_comm);

IF v_comm<>0 THEN

v_comm:=v_comm+100;

ELSE

v_comm:=200;

END IF;

UPDATE emp SET comm=v_comm WHERE empno=v_empno;

dbms_output.put_line('雇员新补助:'| | v_comm);

END;

Oracle的sql条件带有,oraclesql语句的if相关推荐

  1. Oracle提高SQL查询效率where语句条件的先后次序

    (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处 ...

  2. oracle mysql sql serve where in 语句的不同

    类似这样的语句在mysql  oracle 是可以执行成功的, select * from classfirst where (classid ,classname) not in (select c ...

  3. oracle大于条件,oracle中sql语句中的in的条件数量大于1000有问题

    oracle中sql语句中的in的条件数量大于1000有问题 oracle中sql语句中select * from t_Test t where  t.Id in(1,2,3......)/*数量不能 ...

  4. oracle sql循环判断语句怎么写,Oracle 非常详细的 PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理...

    PL/SQL入门教程目录 Oracle PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理 一.PL/SQL简介 1.PL/SQL简介 1.PL/SQl是过程语言PL与结构化语言 ...

  5. oracle中sql怎么加判断,sql条件判断语句

    sql 中的if 判断 语句应该怎么写 sql中的if语句写法和java中差不多,都是先定义变量再使用变量进行判断. 由于你的提问不是很清晰,我就自己的看法解答下你的问题:如果你指的是查询条件的话:s ...

  6. 【Oracle】SQL语句优化

    (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):  ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最 ...

  7. oracle与sql语句

    oracle与sql语句 数据库基础 Oracle数据库安装及访问 Oracle相关操作 创建表空间与用户 创建表 Oracle数据类型 创建表 修改表 DML语句 INSERT语句 UPDATE语句 ...

  8. oracle常用sql语句

    – 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba –然后,解除对scott用户的锁 alter user scott account unlock; ...

  9. Oracle的SQL语句优化(满满干货,建议收藏!)

    1. SQL语句执行步骤 语法分析> 语义分析> 视图转换 >表达式转换> 选择优化器 >选择连接方式 >选择连接顺序 >选择数据的搜索路径 >运行&q ...

  10. oracle 常用sql语句

    -- 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba --然后,解除对scott用户的锁 alter user scott account unloc ...

最新文章

  1. EonerCMS——做一个仿桌面系统的CMS(十一)
  2. POI操作Excel:cell的背景颜色类型
  3. jquery 统计统计子标签的个数
  4. matlab如何建立一个空矩阵,然后往里面赋值
  5. Error creating bean with name 解决办法
  6. 谈谈我在自然语言处理进阶上的一些个人拙见
  7. 树莓派(RespberryPi)安装手记
  8. 新品Demo —— ZStack CMP多云管理平台
  9. Excel任务该如何在FineReader 12中设置
  10. 模糊 K 均值聚类算法
  11. android 2个 微信,手机挂2个微信可以吗?安卓手机挂2个微信以上教程
  12. 菜鸟学IT之Hadoop综合大作业
  13. 理论算法两手抓,UIUC助理教授孙若愚60页长文综述深度学习优化
  14. Https网址在线安全检测网站
  15. 故宫景点功课1:城池区
  16. 6个平凡人的经历,参悟工程师的成功秘密
  17. 让你的IDEA如丝滑般顺畅
  18. 论人工智能创造物的专利权归属
  19. ZZULIOJ--2835: 未成年人之友
  20. NLP学习(十三)-NLP实战之LSTM三分类文本情感分析-tensorflow2+Python3

热门文章

  1. 黑马程序员-Java基础,Java集合Collection和Iterator接口
  2. 两个android程序间的相互调用(apk互调)
  3. 用HTML5的DOCTYPE标签兼容各版本IE浏览器的方法技术
  4. esp8266实验:搭建最小系统,刷nodemcu固件,dht11温度读取并上传服务器
  5. 日久见人心,以小见大
  6. opencv Basic Drawing
  7. Atitit index threod type 索引原理与类型 种类 目录 1.1. 每个文档在经过底层的存储引擎持久化后 1 2. MongoDB索引类型 2 2.1. 包括单字段索引、复合索引
  8. Atitit 数据类型体系图 目录 1. 系统常用的数据类型 1 2. H5 form表单新数据类型 2 2.1. TML5 新的 Input 类型 2 2.2. HTML5 的新的表单元素: 2
  9. Atitit 艾提拉音频资源列表与统计 t6 六月份战果与7月份规划.docx 目录 1. 第一层次 原始资源类 采集资源类 1 1.1. K歌类采集资源 整理 1 1.2. K歌类资源初步分类
  10. Atitit java字符串模板渲染总结 目录 1. 总结:指标 1 1.1. 支持中文变量 提升可读性 1 1.2. 变量placeholder简单性,,velo可以直接¥前导简单。。Free的