天天看点

Teardata SQL Assistant使用技巧

以下是本人工作中遇到的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'都是大小写值全部返回。

继续阅读