Oracle实用SQL查询函数积累
来源:互联网 发布:农业供给侧 知乎 编辑:程序博客网 时间:2024/05/19 14:35
1. 需求: 查询数据时,如果该字段值为空,则sql设置显示一个默认值,否则显示查询出来的值.
函数: nvl(param, default);
解释: 使用nvl函数时, 第一个参数是要查询的字段, 第二个参数是查询字段为空时显示的默认值, 如果不为空则显示查询出来的值
2. 需求: 查询数据时, 有一个字段存储的值是1,2,3这种, 查询时要显示为对应的中文.
函数decode(status,'1','[ON]','2','[OFF]','[OFF]');
解释: 使用decode函数相当于是一个if语句, 判断第一个参数是要查询的字段,第二个和第三个是一个组合(相当于一个if语句块),表示(值,对应值),这里中间可以有多个这样的if语句块,最后一个参数相当于else的作用,如果前面的都不满足就取最后一个值.
3. 需求: 查询时使用了like,like后面的值要是查询出来的结果
demo1: (select id from table)||'%'
demo2: select '['||count(decode(zt,'1','1'))||'/'||count(id)||']' from sb 结果是: [2/3] 这样的
解释: sql语句中使用||两个竖线来对值进行拼接,而不是+号.
4. 需求: 根据Id等条件查询出上一条和下一条数据
上一条函数: lag(a.id) over(partition by a.status order by a.yjsj desc)
下一条函数: lead(a.id) over(partition by a.status order by a.yjsj desc)
示例SQL: select t.nextid,t.beforeid from (select a.id,lead(a.id) over(partition by a.status order by a.yjsj desc) nextid,lag(a.id) over(partition by a.status order by a.yjsj desc) beforeid from table a where a.status='0') t where t.id = ?;
5. 需求: 将两个表的结果合成一个结果集返回, 字段不对应
union all 可以将两个表的结果合成一个结果集返回, 但是要将字段对应
如: table1 id,name table2 id,name,para1,para2
select id,name,para1,para2 from table2 union all select id,name,'','' from table1
- Oracle实用SQL查询函数积累
- 简单实用oracle sql查询
- 实用SQL积累
- 常用oracle sql函数及语句积累
- oracle函数,sql语句整理积累
- oracle查询效率积累
- oracle查询效率积累
- oracle查询效率积累
- oracle查询效率积累
- oracle sql查询使用函数
- SQL查询语句积累
- SQL查询知识积累
- oracle sql语句积累
- oracle sql 知识 积累
- oracle sql积累
- ORACLE高效SQL积累
- ORACLE-SQL积累(查询外检约束、记录长度、字段长度、启用禁用触发器、case用法、分组连接函数、查询被锁表)
- oracle数据库中查询连接数的实用sql语句
- Spectral Clustering
- 访问 views onCreate()方法报NullPointerException
- 为何需要可视化: 信息到智慧的升华
- Jquery异常集锦
- java匿名内部类
- Oracle实用SQL查询函数积累
- 【通信框架】Google的开源通信框架protobuf概述
- Sphinx 配置文件的说明
- java SSL证书生成以及Https连接详解
- 解决Eclipse启动报错 :【Failed to create the Java Virtual Machine】
- Android 报错 Activity 状态
- SPI协议及工作原理分析
- win7的hosts文件不能修改
- 关于Netflix Prize的总结