设为首页 收藏本站
查看: 1267|回复: 0

[经验分享] DB2常用函数与Oracle比较

[复制链接]

尚未签到

发表于 2016-11-18 06:28:42 | 显示全部楼层 |阅读模式
  1、类型转化函数:
  decimal, double, Integer, smallint,real,Hex(arg),date, time,timestamp,char, varchar
  常用举例:
  --转化为字符串类型
  Oracle: select to_char(15.5000) from dual;
  DB2:    select char(15.5000) from sysibm.sysdummy1
  --转化为日期时间
  Oracle: select to_date('2008-01-01','yyyy-mm-dd') from dual;
  DB2:    select date('2008-01-01') from sysibm.sysdummy1
  2、时间日期:
  year, quarter, month, week, day, hour, minute ,second
  dayofyear(arg):返回arg在年内的天值
  Dayofweek(arg):返回arg在周内的天值
  days(arg):返回日期的整数表示法,从0001-01-01来的天数。
  midnight_seconds(arg):午夜和arg之间的秒数。
  Monthname(arg):返回arg的月份名。
  Dayname(arg):返回arg的星期。
  常用举例:
  --返回当前系统时间
  Oracle: select sysdate from dual;
  DB2:    select current date from sysibm.sysdummy1
  --返回当前时间的下一天(年月 时 同理)
  Oracle: select sysdate,sysdate + interval '1' day from dual;
  DB2:    select current date + 1 day from sysibm.sysdummy1
  3、字符串函数:
  length,lcase, ucase, ltrim, rtrim
  Coalesce(arg1,arg2….):返回参数集中第一个非null参数。
  Concat (arg1,arg2):连接两个字符串arg1和arg2。
  insert(arg1,pos,size,arg2):返回一个,将arg1从pos处删除size个字符,将arg2插入该位置。
  left(arg,length):返回arg最左边的length个字符串。
  locate(arg1,arg2,<pos>:在arg2中查找arg1第一次出现的位置,指定pos,则从arg2的pos处开始找arg1第一次出现的位置。
  posstr(arg1,arg2):返回arg2第一次在arg1中出现的位置。
  repeat(arg1 ,num_times):返回arg1被重复num_times次的字符串。
  replace(arg1,arg2,arg3):将在arg1中的所有arg2替换成arg3。
  right(arg,length):返回一个有arg左边length个字节组成的字符串。
  space(arg):返回一个包含arg个空格的字符串。
  substr(arg1,pos,<length> :返回arg1中pos位置开始的length个字符,如果没指定length,则返回剩余的字符。
  常用举例:
  --空值处理函数
  Oracle: select nvl(null,'aaa') from dual;
  DB2:    db2 select coalesce(comm,1000) from staff;
  --去空格:
  Oracle: select trim(' abc ') from dual;--默认去掉两端空格
  select trim(heading '' from ' abc ') from dual --只去掉左端空格,也可用于去掉其它字符
  select trim(trailing '' from ' abc ') from dual --只去掉右端空格,也可用于去掉其它字符
  DB2:
  select ltrim(rtrim(' abc ')) from sysibm.sysdummy1
  select ltrim(' abc ') from sysibm.sysdummy1
  select rtrim(' abc ') from sysibm.sysdummy1
  --返回字符串大写值,其实都用upper即可
  Oracle: select upper('abc') from dual;
  DB2:    select upper('abc') from sysibm.sysdummy1
  或者
  select ucase('abc') from sysibm.sysdummy1
  --合并字符串,Oracle和DB2相同都可以如下:
  Oracle: select concat('abcd','efg') from dual;
  select 'abcd' || 'efg' from dual;
  DB2:   select concat('abcd','efg') from sysibm.sysdummy1
  select 'abcd' || 'efg' from sysibm.sysdummy1
  4、数学函数:
  Abs, count, max, min, sum
  Ceil(arg):返回大于或等于arg的最小整数。
  Floor(arg):返回小于或等于参数的最小整数。
  Mod(arg1,arg2):返回arg1除以arg2的余数,符号与arg1相同。
  Rand():返回1到10之间的随机数。
  Power(arg1,arg2):返回arg1的arg2次方。
  Round(arg1,arg2):四舍五入截断处理,arg2是位数,如果arg2为负,则对小数点前的数做四舍五入处理。
  Sigh(arg):返回arg的符号指示符。-1,0,1表示。
  truncate(arg1,arg2):截断arg1,arg2是位数,如果arg2是负数,则保留arg1小数点前的arg2位。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-301784-1-1.html 上篇帖子: DB2基本概念 下篇帖子: DB2常用命令语句
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表