Oracle语句学习

(1)select * from dual中的dual到底是什么?

在sql-developer中测试发现,dual只是一个包含一列,永远只返回一条数据记录的虚拟表。使用dual,是为了构成select的语法规则。当我们需要查询一些不需要表名的数据时,但为了保证sql语法正确性,我们需要添加dual。

比如:

【1】查询当前用户

select user from dual;

【2】查询Oracle的系统时间

select sysdate from dual;


(2)trunc(number)函数

trunc()的作用是按照一定的规则截取传入的参数

【1】select trunc(123.456) from dual;    返回123    即直接去除小数位

【2】select trunc(123.456,2) from dual;    返回123.45    将小数点后2位的数字截去,说减去可能更容易理解

123.456-0.006=123.45

【3】select trunc(123.456,-2) from dual;    返回100    将小数点前2位的数字减去,即123.456-23.456=100


(3)nvl(a,b)函数

如果a为null值时,则返回b。如果a不为null值时,则返回a本来的值。

用java语言来概括就是

return a==null?b:a;


(4)sign(a)函数

如果a是负数,则返回-1

如果a是0,则返回0

如果a是正数,则返回1


(5)decode(key,x1,y1,x2,y2,.....xn,yn,defaultValue)函数

含义如下:类似于switch语句

switch(key){case x1:return y1;case x2:return y2;.......case xn:return yn;default:return defaultValue;
}

【1】查询某班男生和女生的数量

通常我们这么写:

select count(*) from 表 where 性别 = 男;

select count(*) from 表 where 性别 = 女;

之后好需要进行union

现在利用decode,可以这样写

select sum(decode(性别,男,1,0)),sum(decode(性别,女,1,0)) from 表


(6)listagg()函数的作用

列转行,能够将多条记录转化成一条记录,中间用特定的分隔符连接

话不多说。示例:

查看每个人身上的标签,标签之间以逗号隔开

对应的sql语句为:

 select name,listagg(tag,',') within group(order by tag) tags from table_a group by name

此时输出为:

group bu name,先按照name字段就行分组

listagg(tag,',') 实现行转列,将分组后的tag列表转化成一行记录,各个tag之间用逗号连接

within group(order by tag),tag行记录内的多个tag,升序排列


(7)||是什么意思?

相当于字符串连接,即相当于“+”

话不多说,示例:


(8)(+)代表什么?

这个要谈到左连接与右连接。

当此符号出现在连接条件的右边时,此时是左连接。

当此符号出现在连接条件的左边时,此时是右连接。

更加详细的解释见Oracle(+)号用法

不过需要注意的是,oracle中才有这种语法。mysql中是没有的,只能乖乖的写join了。

【日常学习笔记】2019/1/10(Oracle语句学习)相关推荐

  1. python学习笔记(九)之语句1

    python学习笔记(九)之语句1 print python2中,print是一个语句,python3中它是一个函数. 实例1: >> print "hello,world!&q ...

  2. oracle rac 仲裁盘_【学习笔记】深入研究Oracle RAC节点驱逐的条件和案例

    天萃荷净 Oracle研究中心学习笔记:分享一篇关于Oracle数据库RAC环境中节点间管理的文章,详细介绍了RAC节点驱逐条件和管理方法. 本站文章除注明转载外,均为本站原创: 转载自loveOra ...

  3. mysql select语句详解_mysql学习笔记之完整的select语句用法实例详解

    本文实例讲述了mysql学习笔记之完整的select语句用法.分享给大家供大家参考,具体如下: 本文内容: 完整语法 去重选项 字段别名 数据源 where group by having order ...

  4. Python学习笔记:Day 10 用户注册和登陆

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  5. mysql数据库select语句用法_mysql学习笔记之完整的select语句用法实例详解

    本文实例讲述了mysql学习笔记之完整的select语句用法.分享给大家供大家参考,具体如下: 本文内容: 完整语法 去重选项 字段别名 数据源 where group by having order ...

  6. 高维统计学习笔记1——LASSO和Oracle性质

    高维统计学习笔记1--LASSO和Oracle性质 主要参考资料:Sara Van De Geer<Estimation and Testing Under Sparsity> 前言 当年 ...

  7. 【双评价学习笔记2019】农业生产适宜性评价01·土地资源评价

    QQ交流群:607330463 GIS开发技术最强交流群   未经允许 禁止转载  可以参考 文章是转载了一位大佬的,欢迎关注他的公众号:https://zhuanlan.zhihu.com/p/78 ...

  8. TI CC2530 学习笔记-0-IAR 8.10下载与安装

    TI CC2530 学习笔记-目录 TI CC2530 学习笔记-0-IAR 8.10下载与安装 IAR 8.10下载:IAR8.10 for 8051 IAR 安装:安装教程

  9. 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述

    <繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...

最新文章

  1. Android之工程目录介绍
  2. 记录Nginx搭建网关服务
  3. android ip探测,Android-IpReachabilityMonitor
  4. NLB网路负载均衡管理器详解
  5. matlab 工具 安装包下载地址,安装 | MATLAB2018a (64位) 安装教程及安装包下载链接...
  6. c语言全局变量和局部变量作用域重合时,c语言全局变量与局部变量(当变量重名时)的使用情况...
  7. 使用Python进行任务调度(进阶篇)
  8. 如此轻松就能搭建聊天机器人,我也要弄一个~
  9. 2021年国内好用的可视化工具
  10. 怎么将PDF文件转换成Word文档?
  11. 工行u盾显示316_工行U盾常见故障处理
  12. 手机的模拟,有耗电和充电方法, 有电量的属性
  13. c语言定积分区间微元面积,定积分的微元法.doc
  14. ViewFlipper-仿淘宝垂直广告滚动
  15. POJ - 3264
  16. linux下使用第三方商店安装应用
  17. LuckyExcel预览excel
  18. 基于requests+pyecharts的前程无忧工作岗位可视化分析
  19. 编辑器工具--通用编辑器工具(持续完善中)
  20. oracle确认AMM是否开启,【AMM】关于数据库实例AMM参数说明

热门文章

  1. Windows beanstalkd启动
  2. C语言输出ABBBCCCCCDDDDDDDCCCCCBBBA
  3. Nova冷迁移与Resize
  4. 力扣:安排电影院座位
  5. 电影院恢复开放深度彰显复工复产
  6. 2020-10-18 二、熵的定义
  7. 率土之滨宝物列表_率土之滨宝物系统改公告发布了,这些事情你得知道
  8. 财务开发必备ABAP语法之 DO VARYING
  9. 管程C语言,信号量PV和管程
  10. 超简单易上手无门槛:微信早安推送+定时任务自定义配置送。