1:比较大小函数 SIGN
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1 ,例如:
引用
a=10,b=20
则sign(a-b)返回-1
2:流程控制函数 DECODE
DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商还没有实现此功能。假设想给职员加工资,其标准是:工资在8000元以下的将加20%;工资在8000元以上的加15%,8000 元的不加。实现:
select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary from employee
含义解释:
引用
decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
应用 行转列
表结构:TEST_TB_GRADE:
create table TEST_TB_GRADE
(
ID NUMBER(10) not null,
USER_NAME VARCHAR2(20 CHAR),
COURSE VARCHAR2(20 CHAR),
SCORE FLOAT
)
初始数据如下图:
如果需要实现如下的查询效果图:
这就是最常见的行转列,主要原理是利用decode函数、聚集函数(sum),结合group by分组实现的,具体的sql如下:
select t.user_name,
sum(decode(t.course, '语文', score,null)) as CHINESE,
sum(decode(t.course, '数学', score,null)) as MATH,
sum(decode(t.course, '英语', score,null)) as ENGLISH
from test_tb_grade t
group by t.user_name
order by t.user_name
nvl
nvl(a,b) 如果a不为null 则返回a,如果a为null则返回b;
nvl2
nvl2(a,b,c) ,如果a不为null 则返回b,如果a为null则返回c;
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0054/2755/75aba354-a924-35b5-a8ea-bcc86bd2104c-thumb.png)
- 大小: 20.6 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0054/2757/fb55f8c4-9133-3b24-994f-a35d1beca19b-thumb.png)
- 大小: 5.3 KB
分享到:
相关推荐
Decode 函数是一个强大的 Oracle 函数,用于根据条件返回不同的值。它的语法结构为 `decode(条件,值 1,返回值 1,值 2,返回值 2,...值 n,返回值 n,缺省值)`。decode 函数的含义是,如果条件等于值 1,则返回返回值 1...
1,数值型函数(abs()、sign()、ceil()、floor()、power()、exp()、round()...); 2,字符型函数(lower()、upper()、lpad()、rpad()、substr()、replace()...); 3,日期型函数(add_months()、last_day()、round()、...
Oracle常用函数大全是我初学时总结的知识心得,希望能和大家一起分享,一起学习,共同进步!!!
DECODE 函数是 Oracle 公司独家的功能强大的函数,它提供了简洁的运算方式、可控的数据模型和灵活的格式转换。DECODE 函数是 Oracle PL/SQL 的功能强大的函数之一,目前还只有 Oracle 公司的 SQL 提供了此函数,其他...
Oracle常用函数+函数范例(希望给初学者带来帮助)!!!
ORACLE函数大全 ________________________________________ 作者:[本站编辑] 来源:[CSDN] 浏览:[ ] SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,...
SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- ...
构建和调整PL/SQL触发器、函数和程序包 使用Java、JDBC和XMIL开发数据库应用程序 使用Oracle实时应用群集(RAC)优化可用性和可扩展性 内容提要 《Oracle Database 11g完全参考手册》全面详细地介绍了Oracle ...
构建和调整PL/SQL触发器、函数和程序包 使用Java、JDBC和XMIL开发数据库应用程序 使用Oracle实时应用群集(RAC)优化可用性和可扩展性 内容提要 《Oracle Database 11g完全参考手册》全面详细地介绍了Oracle ...
数据库基本概念是数据库教程的第二章,涵盖了数据库的基本数据类型、表的概念、数据类型的使用、函数和运算符等知识点。 2.1 数据类型 数据库中的数据类型可以分为基本数据类型、字符串类型、日期类型、二进制大...
§16.4 过程和函数中的例外处理 282 §16.4.1 使用系统定义的例外处理 282 §16.4.1.1 没有例外处理的缺点 283 §16.4.1.2 使用预定义的例外处理 283 §16.4.2 使用用户定义的例外处理+ 286 §16.4.2.1 定义的用户...
DECODE 函数459 日期转换462 运行一系列的SQL 文件465 在你的SQL 脚本中加入注释466 高级报表467 总结469 问与答469 校练场469 练习470 第21 天常见的SQL 错误及解决方法471 目标471 介绍471 常见的错误471 Table or...
SIGN ............................................................................................................... 77 SQRT ..............................................................................