请问1 decode()和nvl2()函数的用法??????
2 decode(:isNullDate,1,:isLargeThan200,-1)这段代码怎么理解??
谢谢 !!!
2 decode(:isNullDate,1,:isLargeThan200,-1)这段代码怎么理解??
谢谢 !!!
解决方案 »
- 如何使Oracle查询语句更效率?
- 求一个Oracle函数写法,急!
- 出错 SP2-0042: unknown command "INTERSECT"
- 提高SQL水平的方式和途径
- SQL达人进
- oracle数据库 很纠结 急急急!!!!
- 如何用sqlplus执行一个sql文件
- 哪里有oracle8.17 版本的下载!
- insert的问题???着急
- 帮忙改正!!!
- 解释一段代码的意思???????高手帮忙?????
- 问题:很菜的问题 TYPE type_name IS TABLE OF {columble.column%TYPE} [NOT NULL] [INDEX BY BINARY_INTEGER];identifier
含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ELSE RETURN(缺省值) END IF ·
使用方法: 1、比较大小 select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值 sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1 例如: 变量1=10,变量2=20 则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。 2、表、视图结构转化 现有一个商品销售表sale,表结构为: month char(6) --月份 sell number(10,2) --月销售金额 现有数据为: 200001 1000 200002 1100 200003 1200 200004 1300 200005 1400 200006 1500 200007 1600 200101 1100 200202 1200 200301 1300 想要转化为以下结构的数据: year char(4) --年份 month1 number(10,2) --1月销售金额 month2 number(10,2) --2月销售金额 month3 number(10,2) --3月销售金额 month4 number(10,2) --4月销售金额 month5 number(10,2) --5月销售金额 month6 number(10,2) --6月销售金额 month7 number(10,2) --7月销售金额 month8 number(10,2) --8月销售金额 month9 number(10,2) --9月销售金额 month10 number(10,2) --10月销售金额 month11 number(10,2) --11月销售金额 month12 number(10,2) --12月销售金额 结构转化的SQL语句为: create or replace view v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,month9,month10,month11,month12) as select substrb(month,1,4), sum(decode(substrb(month,5,2),01,sell,0)), sum(decode(substrb(month,5,2),02,sell,0)), sum(decode(substrb(month,5,2),03,sell,0)), sum(decode(substrb(month,5,2),04,sell,0)), sum(decode(substrb(month,5,2),05,sell,0)), sum(decode(substrb(month,5,2),06,sell,0)), sum(decode(substrb(month,5,2),07,sell,0)), sum(decode(substrb(month,5,2),08,sell,0)), sum(decode(substrb(month,5,2),09,sell,0)), sum(decode(substrb(month,5,2),10,sell,0)), sum(decode(substrb(month,5,2),11,sell,0)), sum(decode(substrb(month,5,2),12,sell,0)) from sale group by substrb(month,1,4);
(CASE deptno
WHEN 10 THEN 'ACCOUNTING'
WHEN 20 THEN 'RESEARCH'
WHEN 30 THEN 'SALES'
WHEN 40 THEN 'OPERATIONS'
ELSE 'Unassigned'
END ) as Department
FROM emp;