摘要: 1 --1.单独使用Group By子句:每个分组返回一条记录2 select a.division_id, sum(a.salary)3 from employees2 a4 group by a.division_id5 order by a.division_id运行结果:1 DIVISION_ID SUM(A.SALARY)2 1 BUS 16100003 2 OPE 13200004 3 SAL 49360005 4 SUP 10150001 --2.扩展子句Rollup: 每个分组返回一条小计,最后返回一条总计2 ... 阅读全文
posted @ 2012-11-04 10:58 原想 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 1 --简单case表达式 2 --case when 表达式用法1 3 --case 表达式 4 -- when exp1 then rslt ... 5 select a.product_id, 6 a.product_type_id, 7 case a.product_type_id 8 when 1 then 'Book' 9 when 2 then 'Video'10 when 3 then 'DVD'11 when 4 then 'CD'12 else 'M... 阅读全文
posted @ 2012-11-03 22:43 原想 阅读(491) 评论(0) 推荐(0) 编辑
摘要: 1 --translate(x, from_string, to_string) 2 --函数在x中查找from_string中的字符,并替换成to_string中对应的字符 3 --下面是使用translate函数的实例: 4 5 --编码 6 select translate('SECRET MESSAGE: MEET ME IN THE PARK', 7 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ', 8 'EFGHIJKLMNOPQRSTUVWXYZA... 阅读全文
posted @ 2012-11-03 22:14 原想 阅读(558) 评论(0) 推荐(0) 编辑
摘要: 下面是Oracle中集合操作符实例(1)Union all1 --Union all 操作符2 select a.product_id, a.product_type_id, a.name3 from products a4 union all5 select b.prd_id, b.prd_type_id, b.name 6 from more_products b 7 order by 1(2)Uinon 操作符1 --Union 操作符2 select a.product_id, a.product_type_id, a.name3 from products a4 un... 阅读全文
posted @ 2012-11-03 21:05 原想 阅读(1588) 评论(0) 推荐(0) 编辑
摘要: 1.定义 在oracle数据库中,NULL表示未知值,既不是空值也不是0,当插入数据时,如果没有为特定列提供值,并且该列没有原先设定的默认值,那么其结果为NULL.尤其要注意的是在算术表达 式中如果出现NULL,那么其结果就是NULL,这会在很多时候造成应用程序输出不符合预想结果.2.处理办法(1)使用NVL(exp1,exp2)函数 该函数等价于if exp1 is NULL then result = exp2 else result = exp1(2)使用nvl2(exp1,exp2,exp3) 该函数等价于if exp1 is NULL then result = exp3 else 阅读全文
posted @ 2012-10-22 10:49 原想 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 今日学习遇到一个不熟悉的函数LPAD,查了一下文档,将其用法总结如下:Lpad Function:在PL/SQL中用于往源字符串的左侧填充一些字符。函数参数:lpad( string1, padded_length, [ pad_string ] )其中string1:源字符串padded_length:最终返回的字符串的长度,如果最终返回的字符串的长度比源字符串的小,那么此函数实际上对源串进行截断处理pad_string:用于填充的字符,可以不填,默认为空字符下面是几个实例:1 --返回值长度大于源字符串长度,将进行填充2 select lpad('zhanglt',10,& 阅读全文
posted @ 2012-10-22 10:47 原想 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 今天在学习《oracleSQL高级编程》,看到了比较全的分析函数列表,故记于此。编号函数功能1LAG访问分区或者数据集中之前的一行2LEAD访问分区或者数据集中之后的一行3First_Value访问分区或者数据集中第一行4Last_Value访问分区或者数据集中最后一行5Nth_Value访问分区或者结果集中任意一行6Rank将数据行值按照排序后的的顺序进行排序,有并列的情况的排名值将跳过7Dense_Rank将数据行值按照排序后的顺序进行排序,有并列值的情况排名值不会跳过8row_number()对行排序并为每一行分配一个唯一的编号,这是一个非确定的函数 阅读全文
posted @ 2012-10-22 10:46 原想 阅读(218) 评论(0) 推荐(0) 编辑
摘要: CONNECT BY可用于生成序列,下面的函数就是利用CONNECT BY的这一特性实现的二进制到十进制的转行函数。 1 create or replace function bintodec(bstr in varchar2) return varchar2 is 2 -- ******************************************************** 3 --* 文件名:BinToDec.sql 4 -- * 版本:1.0 5 -- * 用途:利用connect by实现二进制向十进制的转换 6 -- * 参数: 7 -- * bS... 阅读全文
posted @ 2012-10-22 10:45 原想 阅读(170) 评论(0) 推荐(0) 编辑
摘要: Where子句和Group By子句的区别主要如下:1、Where子句用于返回的单行进行限制2. Group by子句用于对返回的行组进行限制如果Group by 子句中不是对行组进行限制,而是进行单行限制那么应该尽量转换为WHERE子句的条件,这也是SQL优化的内容之一。下面是一个例子:1 select t.product_type_id, avg(t.price)2 from products t3 where t.price < 154 group by t.product_type_id5 having avg(t.price) > 136 order by t.produ 阅读全文
posted @ 2012-10-22 10:44 原想 阅读(441) 评论(0) 推荐(0) 编辑
摘要: Trunc函数对于日期的操作和小数点左边截位的使用实例1 select Trunc(sysdate, 'YYYY'), --本年第一天2 Trunc(sysdate, 'MM'), --本月第一天3 Trunc(sysdate, 'day') --本周第一天4 from dual;5 6 select trunc(123.2,-2) --从左边开始截位7 from dual; 阅读全文
posted @ 2012-10-16 08:44 原想 阅读(813) 评论(0) 推荐(0) 编辑