加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Oracle 和 Teradata 几个常见函数

(2012-11-07 16:52:19)
标签:

it

分类: IT

下面看看Oracle Teradata 几个常见函数对比:

1oracle:nvl(BRANCH_CODE,'00'),   teradata:coalesce(BRANCH_CODE,'00')

2oracle:decode(AA,v1,r1,v2,r2),

teradata:

case

when AA=v1 then r1

when AA=v2 then r2

else null

end

3、类型转化:oracleto_char(),to_date()

teradata,cast('' as 类型)

 

4Length() 函数不是Teradata 的标准函数,虽然Teradata SQL Assitant支持它,但是BTEQ不支持,td中计算VARCHAR型数据字段的实际字符串长度的函数是CHARACTERS,可以写为成CHARACTERCHARSCHARchar_length等。

 5Oracle

trunc(to_date('20090323','YYYYMMDD'),'month') ->2009-03-01

    trunc(23.22,1) ->23.2

     trunc(23.22)   ->23

oracle teradata

    ROUND((200392/ 10000),2)->20.04

    cast(23.22 as decimal(6,1))) ->23.2

    cast(23.22 as int) ->23

    cast(200392/10000.00 as decimal(10,2))  ->20.04

6add_months(dt1,int) TD有此函数,但运算结果与oracle有所不同:

oracle中月末增减月份数得到的都是月末,td中则不一定

eg. select add_months(cast('20090430' as date format 'YYYYMMDD'),-1) 

--2009-03-30 td

select add_months(to_date('20090430','YYYYMMDD'),-1) from dual  

--2009-03-31 oracle

建议sys_calendar.calendaradd_months结合使用,见脚本上月末的求法

7unionunion all

union对两个结果集并集操作,不包括重复记录,默认asc排序

union all 对两个结果进行并集操作,包括重复行,不进行排序。

8、集合操作

合并操作(UNION)、相交操作(INTERSECT)和排外操作

(EXCEPT)  只有TD有。MINUS(相减操作)

MINUS:

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有