Oracle 和 Teradata 几个常见函数
(2012-11-07 16:52:19)
标签:
it |
分类: IT |
下面看看Oracle 和 Teradata 几个常见函数对比:
1、oracle:nvl(BRANCH_CODE,'00'),
2、oracle:decode(AA,v1,r1,v2,r2),
teradata:
case
when AA=v1 then r1
when AA=v2 then r2
else null
end
3、类型转化:oracle,to_char(),to_date()
teradata,cast('' as 类型)
4、Length() 函数不是Teradata 的标准函数,虽然Teradata SQL Assitant支持它,但是BTEQ不支持,td中计算VARCHAR型数据字段的实际字符串长度的函数是CHARACTERS,可以写为成CHARACTER、CHARS或CHAR,char_length等。
trunc(to_date('20090323','YYYYMMDD'),'month') ->2009-03-01
oracle 、teradata
6、add_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.calendar和add_months结合使用,见脚本上月末的求法
7、union、union all
union对两个结果集并集操作,不包括重复记录,默认asc排序
union all 对两个结果进行并集操作,包括重复行,不进行排序。
8、集合操作
合并操作(UNION)、相交操作(INTERSECT)和排外操作
(EXCEPT)
MINUS: