天天看點

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'都是大小寫值全部傳回。

繼續閱讀