以下是本人工作中遇到的Teradata的一些使用问题,在这做个记录,与大家共享。
注:C 表示 Ctrl
1. 格式化代码 C + Q
2. 清除代码 C + T
3. 替换代码 C + H
4. 执行 F5
5. 批量并行执行 F9
6. 字段值为“?”就是null 的意思
7. 创建虚拟临时表
CREATE MULTISET VOLATILE TABLE XXXXXXXXXXXXX
(
QQQQ DECIMAL(18,0),
WWW DATE FORMAT 'YYYY-MM-DD',
DDDD VARCHAR(64) CHARACTER SET LATIN NOT CASESPECIFIC,
EEEEE VARCHAR(32) CHARACTER SET UNICODE NOT CASESPECIFIC,
FFFFFFFFFFF VARCHAR(64) CHARACTER SET UNICODE NOT CASESPECIFIC,
XXXX VARCHAR(64) CHARACTER SET UNICODE NOT CASESPECIFIC,
RRRRR VARCHAR(64) CHARACTER SET UNICODE NOT CASESPECIFIC,
FFF DECIMAL(18,0))
PRIMARY INDEX ( QQQQ,WWWW)
ON COMMIT PRESERVE ROWS;
补充说明:
MultiSet和Set的区别:
MultiSet
可以插入完全相同的两条记录
会提高数据插入的速度
Set
不可以插入完全相同的两条记录
保证记录的唯一性
由于需要查重处理,会降低数据插入的速度
可以作为一种去重的方法
8. 在Teradata中使用正则表达式截取字符串:
SELECT REGEXP_SUBSTR(src,'^https?://.*\.[a-z]*',1)
第一个参数是被截取的字段,第二个字段是为正则匹配表达式,第三个为参数。
9. Latin转Unicode
syslib.udf_utf8to16(src.column)
10. 字符串转时间戳
cast(src.column as TIMESTAMP(0) )
11. 查看所有可用函数
help 'sql'
12. 查看某个函数的定义和使用方法
例如查询字符串替换函数 HELP 'sql regexp_replace'
13. 查看Tera data的语法树
help 'sql insert'
help 'sql update'
help 'sql delete'
help 'sql merge'
14. 默认大小写不敏感即字段后的属性是“NOT CASESPECIFIC”
查询数据时使用 col_name='ABC' 或者 col_name like '%ABC%' 或者substr(col_name ,1,n) = 'ABC'都是大小写值全部返回。