teradata数据类型转换oracle,Oracle 中常见函数在teradata中如何实现

Oracle 中常见函数在teradata中如何实现

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

1、oracle:nvl(f1,f2...),teradata:coalesce(f1,f2...)

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 等。

5、a:trunc(to_date('20090323','YYYYMMDD'),'month') ->2009-03-01

td没有此函数,使用脚本里处理好的变量$g_this_month,其它常用日期同,定义见 ebi_agg_ep_cust_txn_sum0200.pl;

b:trunc(23.22,1) ->23.2

trunc(23.22) ->23

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值