`
guoyulong005
  • 浏览: 30526 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

oracle函数

阅读更多
1 算术运算符
用于执行数学计算,加(+)、减(-)、乘(*)、除(/)

2 比较运算符
用于将一个表达式与另一个表达式进行比较。
=、!= 、<、>、<=、>=
in、like、is null 、between、not between

3 逻辑运算符
用户合并两个条件的结果以产生单个结果。
and 、or、not

4 合并运算符
用于合并两个独立查询的结果。
union、union all、intersect、minus

5 连接运算符
用于将两个或多个字符串合并在一起。符合为“||”

6 字符串转为数字用to_number函数

7 条件判断函数
(一)if/else功能的实现的3种写法
一、单个IF
1、
if a=...  then
.........
end if;

2、
if a=... then
......
else
....
end if;

二、多个IF
if a=..  then
......
elsif a=..  then
....
end if;    
这里中间是“ELSIF”,而不是ELSE IF 。这里需要特别注意

(二)case when
case when a='1'then 'xxxx'
     when a='2' then 'ssss'
else
  'zzzzz'
end as
注意点:
1、以CASE开头,以END结尾
2、分支中WHEN 后跟条件,THEN为显示结果
3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加
4、END 后跟别名

(三)Decode
Decode针对case进行测试,若case等于if1则返回then1,若case等于if2则返回then2,....若都没有则返回default,如果未定义default值,则返回空值。
Decode函数的原型为: Decode(case, if1, then1, if2,then2.....,default)
同样的也可以用Case语句实现:
SELECT CLASS, course,
       (CASE student
           WHEN 'A' THEN 'Anco'
           WHEN 'B' THEN 'Bily'
           WHEN 'C' THEN 'Candy'
           WHEN 'D' THEN 'Davi'
           WHEN 'E' THEN 'Eve'
           WHEN 'F' THEN 'Fion'
        END) AS en_name
  FROM studentinfo

目前从网上看认为case 的执行效率最高

8.数字函数
1,取整函数(ceil 向上取整,floor 向下取整)
   select ceil(66.6) N1,floor(66.6) N2 from dual;

2, 取幂(power) 和 求平方根(sqrt)
   select power(3,2) N1,sqrt(9) N2 from dual;

3,求余
   select mod(9,5) from dual;

4,返回固定小数位数 (round:四舍五入,trunc:直接截断)
   select round(66.667,2) N1,trunc(66.667,2) N2 from dual;

5,返回值的符号(正数返回为1,负数为-1)
   select sign(-32),sign(293) from dual;



Oracle中数值的计算
运算符 含义

· +(加)   加法
· ||(加) 字符串相加
· -(减)   减法
· *(乘)   乘法
· /(除)   除法
· mod(模)返回一个除法的整数余数

例如,12 % 5 = 2,这是因为 12 除以 5,余数为 2


示例:
select5+6,5+nullfrom dual
select5-6from dual
select5*6from dual
select5/6from dual
selectmod(13,3)from dual


列的计算:

select 字段A+字段B form 表
select 字段A*2 form 表

power(2,3):求2的3次方
round(值,小数位):4合5入
Floor:小数部分直接舍弃,整数不变
CEIL:小数部分直接舍弃,整数+1

--2*2*2*2
select power(2,4)from dual

--问题(了解):求8开根3后的值
--a*a*a=8,a=?
select power(8,1/3)from dual

--四舍五入:
--小数位为0,表示四舍五入以后,返回整数
select round(0.49)from dual
select round(0.5)from dual

--保留2位小数
select round(0.33333,2)from dual

--Floor:小数部分直接舍弃,整数不变
select floor(10.9)from dual
--CEIL:小数部分直接舍弃,整数+1
select Ceil(10.1)from dual
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics