Oracle 11g学习笔记--高级查询

本文详细介绍了Oracle 11g的高级查询功能,包括集合操作符、translate函数、decode()函数、case表达式、层次化查询、扩展的Group by语句(如rollup、cube和grouping sets)、分析函数、model子句以及pivot和unpivot操作。通过实例解析了这些功能的使用方法和应用场景。
摘要由CSDN通过智能技术生成

Oracle 11g学习笔记–高级查询

说明:本文总结自《Oracle Database 11g SQL 开发指南》 Jason Price著

集合操作符

集合操作符可以将两个或者多个查询返回的行组合起来

操作符 说明
union all 返回各个查询检索出的所有行
union 返回各个检索查询出的所有行,不包括重复行
intersect 返回两个查询检索出的共有行
minus 返回将第二个查询检索出的行从第一个查询检索出的行中减去之后剩余的行


使用方法:

select ..... from table_1 union all select ....from table_2;
--必须保证具有相同的结果列

translate函数

translate(x, from_string, to_string)函数在x中查找from_string中的字符,并将其转换成to_string中对应的字符。

select translate('ab123', 'abcdefg123', '3456789abc') from dual;

鼠标放上来,查看结果
从结果可以看出,from_string和to_string中的字符是一一对应的,然后根据这种对应关系,将原字符串进行转换;

注意:两个字符串的长度可以不一致,若前者比后者长,那么后者会以空补齐,此处的空就是没有任何东西,若前者比后者短,那么后者多出的部分会自动忽略;

decode()函数

decode(value, search_value, result, default_value)对 value与search_value进行比较,若相等,则返回result,否则返回default_value.

select decode(1, 1, 3, 4) from dual;

鼠标放上来,查看结果

case表达式

case表达式可在SQL语句中实现if-then-elsse型的逻辑,它的作用与decode类似,但是我们应该使用case,因为它与ANSI兼容,而且更容易读;

select 
    case ROWNUM-1
        when 1 then 'A'
        when 2 then 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值