chapter2 Oracle应用---1总结

来源:互联网 发布:java 递归生成目录树 编辑:程序博客网 时间:2024/06/06 21:43
1总结

     1.常用的字符函数

select initcap('hello') from dual 返回 Hello  (sqlServer中没有)
select upper('hello') from dual 返回HELLO    (sqlServer中一样,但是oracle所有数据都要来自表格,一般虚拟dual表)
select ltrim('xyzadams', 'xyz') from dual    (sqlServer中是去掉左边的空格,oracle是去掉指定文字,从左边开始找,位置一一对应,一直去到不相同为止)
select translate('jack', 'aabcd', 'a') from dual     (sqlServer中没有,前面是需要操作的字符串,中间是一一对应匹配字符串,后面是一一对应替代字符串,如果位数不够则后面全为空)
select replace('jack and jue', 'j', 'bl') from dual     (sqlServer中一样,只要出现中间的,就用后面的替代)
select instr('worldwide', 'd') from dual    (sqlServer中没有,是用CHARINDEX替代,查找后面的字符串出现在前面的第几个位置。)
select substr('abcdefg',3,2) from dual        (sqlServer中是用substring替代,从第几个位置开始截取字符)
select concat ('Hello', 'world') from dual     (sqlServer中没有,追加字符串)

    2.常用的数字函数

select abs(-15) from dual     (sqlServer中一样,取绝对值)
select ceil(44.778) from dual     (sqlServer中用ceiling,向上取整数)
select floor(44.778) from dual    (sqlServer中一样,向下取整数)
select sign(-32) from dual    (sqlServer中一样,取正负)
select power(4,2) from dual    (sqlServer中一样,4的2次方)
select mod(10,3) from dual    (sqlServer中没有,取余数)
select round(100.256,2) from dua    (sqlServer中一样,四舍五入保留多少位小数)
select trunc(100.256,2) from dual    (sqlServer中没有,向下保留多少位小数)
select sqrt(4) from dual    (sqlServer中一样,取平方根)

    3.常用的日期函数

select months_between ('04-11月-05','15-1月-05') from dual (sqlserver中是用SELECT DATEDIFF(mm,'01-01-12','05-01-12')来判断2个月份中的不同,oracle中还将天数也加入计算,所以经常出现小数,oracle的日期格式是日月年)
select add_months('06-2月-03',1) from dual    (sqlserver中是用SELECT DATEADD(mm,4,'01-01-12')来增加日期中的约,oracle增加月份)
select next_day(sysdate,'星期一') from dual      (sqlserver中是用getdate()获取当前时间,没有这个函数。oracle中这个用来判断下个星期一是的日月年)
select last_day(sysdate) from dual    (sqlserver中没有,获取这个月的最后一天)
select round(to_date('13-2月-03'),'YEAR')  from dual  (sqlserver没有,四舍五入按月判断年取整,返回01-01-03)
select round(to_date('13-2月-03'),'MONTH') from dual  (sqlserver没有,四舍五入按天判断月,返回01-01-03)
select round(to_date(sysdate),'DAY') from dual    (sqlserver没有,四舍五入按天判断星期,如果大于星期3返回这个星期天日期,如果小于星期3则去掉返回上个星期天日期)
select trunc(to_date(sysdate),'DAY') from dual    (sqlserver没有,去尾判断星期,返回上个星期天)

    4.常用的转换函数


select to_char(1234.5, '$9999.9') from dual     (sqlserver中没有,但是可以通过SELECT CONVERT (VARCHAR(5),12345)或者select CAST ('x' AS varchar(10))来实现类型转换,oracle转换成规定的格式的字符串)
select to_date('1980-01-01','yyyy-mm-dd') from dual    (sqlserver中没有,将字符串转换成date类型)
select to_number('1234.5') from dual    (sqlserver中没有,将字符串换成number类型)

    5.常用的其他函数

select NVL(null,'5') from dual (sqlserver中用select isnull(null,'1')来实现,oracle原理一样,如果前面为空取后面)
 select NVL2(null,null,'111') from dual    (sqlserver中没有,取靠前不为空的值)
select DECODE('10','2','2', '11','100','1000') from dual     (sqlserver中没有,VALUE,IF1,THEN1,IF2,THEN2,……,ELSE)多种取值

    6.常用的多行函数




和sqlserver一样