Teradata(不同date输出要求;表类型)

1. 需要某种特定形式的date 类型export 到文件中,例如 YYYYMMDD/ YYYY-MM-DD

    这时候不一定非要用date 类型,可以转换为varchar 类型!
Teradata 点滴2 - 寻走的人 - 自由、随心、求真

CAST(CAST (DATE AS FORMAT 'YYYYMMDD') AS CHAR(8))

两重CAST

第一个转化格式,但是结果还是date的默认类型,01/08/2015;

第二个转化类型char,就看到结果了。

2. Teradata 表的类型

可以用show table 名字来查看某表的定义

1) MULTISET Table
create table test
( id int,
name char(20)
)

系统默认会将表设置为MULTISET Table,没有备份(FALLBACK )和恢复日志(BEFORE JOURNAL/AFTER JOURNAL),而且会默认
将第一列设置为PRIMARY INDEX。

2)SET Table

当创建表定义为create set table test;

区别:
SET Table 不可以包含重复数据
MULTISET Table 可以包含重复数据

3)VOLATILE Table  (挥发性的,不稳定的)
create volatile table test as
( select * from table
) with data
on commit preserve rows
这个表只存在于cache中,data dictionary中也找不到这个表,当User结束一个session时,这个表将自动删除,所有用户无法访问,下次用户需要重新建表。

4)GLOBAL TEMPORARY Table
create global temporary table test as
( select * from table
) with no data -- global temporary table cannot define with data
on commit preserve rows

这个表存在于data dictionary中,当User结束一个session时,这个表中的数据将自动删除,表还保留,其它用户可以继续访问这个表,但是数据只存在于某一session中

在上边的定义中,我们使用的是on commit preserve rows,执行以下SQL,我们可以看到表中存有数据。
insert into test
select *
from table

然后执行
select *
from test

如果把定义改为on commit delete rows,我们看到表中依然没有数据,这是因为每个SQL 语句都是一个隐性事务。

原文地址:https://www.cnblogs.com/skyEva/p/5368761.html