Oracle 第二章

1- 排序查询

select * from 表名 order by 字段;

desc :从大到小排序 

默认是从小到大排序

2- 基于伪列的查询

ROWID 和 ROWNUM

rowid : 唯一的编号 

select rowid,表名.*

from 表名

where ROWID= 'AAAStKAANAAAAC/AAC'; (rowid号)

ROWNUM查询列表中从1开始编号

select rownum,表名.* from 表名 

相当于排列序号

但如果查询 where rownum时 不可以跳过1开始 rownum>5 不行

可以with 名字 as()进行查询

3-分页查询

使用rownum

查看前10条

select rownum, 表名.* from 表名  where rownum<=10

4-基于排序的分页

每页 10 条记录 ,按使用字数降序排序,查询第 2 页数据

select * from

       (select rownum r,表名.* from 表名

        where rownum<=20

        order by usenum desc)

where r>10

5-其他函数

5-1:空值处理函数(与sql中的if差不多)

NVL (检测的值 ,如果为 null 的值)  ;

语句 :

select NVL(NULL, 0) from dual

显示价格表中业主类型 ID 为 1 的价格记录 ,如果上限值为 NULL,则显示 9999999

语句 :

select price, minnum, nvl(maxnum,9999999)

from t_pricetable

where ownertypeid=1

空值处理函数 NVL2

用法 :

NVL2 (检测的值,如果不为 null 的值,如果为 null 的值)  ;

需求 :显示价格表中业主类型 ID 为 1 的价格记录 ,如果上限值为 NULL,显示“不限“ .

select price, minnum, nvl2(maxnum, to_char(maxnum), '不 限')

from t_pricetable

where ownertypeid=1

6-时间相关函数

Orcale中时间类型date是 必须为 年月日时分秒的样式

和mysql中不一样 没有单独的year时间类型

使用 to date('时间','yyyy-mm-dd.....')

SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;

SELECT TO_DATE('2006-05-01 19:25', 'YYYY-MM-DD HH24:MI') FROM DUAL;

SELECT TO_DATE('2006-05-01 19', 'YYYY-MM-DD HH24') FROM DUAL;

SELECT TO_DATE('2006-05-01', 'YYYY-MM-DD') FROM DUAL;

SELECT TO_DATE('2006-05', 'YYYY-MM') FROM DUAL;

SELECT TO_DATE('2006', 'YYYY') FROM DUAL;

trunc函数截取后的结果依然为时间类型

trunc(sysdate) S2,

trunc(sysdate,'year') YEAR,

trunc(sysdate,'month') MONTH ,

trunc(sysdate,'day') DAY

from dual;

to_char 函数 时间转变为字符串类型

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;

select to_char(sysdate,'yyyy') as nowYear from dual;

select to_char(sysdate,'mm') as nowMonth from dual;

select to_char(sysdate,'dd') as nowDay from dual;

select to_char(sysdate,'hh24') as nowHour from dual;

select to_char(sysdate,'mi') as nowMinute from dual;

select to_char(sysdate,'ss') as nowSecond from dual;

7-行列转换

按月份统计 2012 年各个地区的水费 ,如下图

代码如下:

select 

  (select name from T_AREA where id= areaid ) 区域,

  sum ( case when month= '01' then money else 0 end) 一月,

  sum ( case when month= '02' then money else 0 end) 二月,

  sum ( case when month= '03' then money else 0 end) 三月,

  sum ( case when month= '04' then money else 0 end) 四月,

  sum ( case when month= '05' then money else 0 end) 五月,

  sum ( case when month= '06' then money else 0 end) 六月,

  sum ( case when month= '07' then money else 0 end) 七月,

  sum ( case when month= '08' then money else 0 end) 八月,

  sum ( case when month= '09' then money else 0 end) 九月,

  sum ( case when month= '10' then money else 0 end) 十月,

  sum ( case when month= '11' then money else 0 end) 十一月,

  sum ( case when month= '12' then money else 0 end) 十二月

from t_account

where year='2012'

group by areaid

;

8-集合运算

  • UNION ALL(并集) ,返回各个查询的所有记录 ,包括重复记录。
  • UNION(并集) ,返回各个查询的所有记录 ,不包括重复记录。
  • INTERSECT(交集) ,返回两个查询共有的记录。

union all :不去重

select * from t_owners where id<=7

union all

select * from t_owners where id>=5

UNION  去掉重复记录

select * from t_owners where id<=7

union

select * from t_owners where id>=5

INTERSECT(交集)

select * from t_owners where id<=7

intersect

select * from t_owners where id>=5

只会输出567 交集的数据

9-差集运算

select * from t_owners where id<=7

minus

select * from t_owners where id>=5

只会显示1234  显示没有重合的数据

相关推荐

  1. Oracle第一

    2024-04-25 03:24:02       32 阅读
  2. 计算机概论第二

    2024-04-25 03:24:02       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-25 03:24:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-25 03:24:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-25 03:24:02       82 阅读
  4. Python语言-面向对象

    2024-04-25 03:24:02       91 阅读

热门阅读

  1. InfluxDB v1.8

    2024-04-25 03:24:02       37 阅读
  2. 2024 极术通讯-生成式AI的发展现状与未来趋势

    2024-04-25 03:24:02       35 阅读
  3. 数据结构与算法-砖墙问题

    2024-04-25 03:24:02       37 阅读
  4. vivado 通过修改调试核 (ILA) 来进行增量编译

    2024-04-25 03:24:02       32 阅读
  5. UE5 android package

    2024-04-25 03:24:02       35 阅读
  6. Python_偏函数

    2024-04-25 03:24:02       33 阅读