decode
来源:互联网 发布:银行卡套现后果知乎 编辑:程序博客网 时间:2024/05/22 04:57
1:比较大小函数 SIGN
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1 ,例如:
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1 ,例如:
引用
a=10,b=20
则sign(a-b)返回-1
则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
- )
初始数据如下图:
http://dl.iteye.com/upload/attachment/542755/75aba354-a924-35b5-a8ea-bcc86bd2104c.png?_=2248718
如果需要实现如下的查询效果图:
http://dl.iteye.com/upload/attachment/542757/fb55f8c4-9133-3b24-994f-a35d1beca19b.png?_=2248718
这就是最常见的行转列,主要原理是利用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
阅读全文
0 0
- decode
- decode
- decode
- DECODE
- decode
- DECODE
- decode
- decode
- decode函数
- Decode 函数
- oracle decode
- DECODE函数
- Decode函数
- DECODE 用法
- nvl decode
- DECODE()函数
- DECODE()函数
- DECODE函数
- vue-router路由
- 6.3程序改错题
- easyui展示年月
- 代码实现能力啊!!!!
- Redis的简单应用
- decode
- 电容电阻贴片封装尺寸
- DFS 2568 hdu (树中两点距离的搜索)
- Github Page + Hexo 搭建静态博客傻瓜式教程
- 大数据1-淘宝Hadoop集群的概况(转)
- jq案例练习
- 习题6.10
- storm详解与调优
- 判断窗口是否退出