TD的学习与使用04内置函数、聚合函数、CASE和COALESCE、主索引、连接、子查询

https://www.w3cschool.cn/teradata/teradata_built_in_functions.html

一、内置函数
Teradata提供了内置函数,这些函数是SQL的扩展

SELECT DATE;   			 --19/09/02
SELECT CURRENT_DATE;  		 --19/09/02
SELECT TIME;   			 --10:06:57
SELECT CURRENT_TIME;   		 --10:06:57
SELECT CURRENT_TIMESTAMP;	 --2019-09-02 10:08:06.280000-04:00
SELECT DATABASE; 		 --DBC

二、聚合函数
Teradata支持公共聚合函数。 它们可以与SELECT语句一起使用。
COUNT - 计算行数
SUM - 累计指定列的值
MAX - 返回指定列的较大值
MIN - 返回指定列的最小值
AVG - 返回指定列的平均值

三、CASE和COALESCE
1.CASE表达式
CASE表达式根据条件或WHEN子句计算每一行,并返回第一个匹配的结果。 如果没有匹配,则返回ELSE部分的结果。
语法:case … when … then … else … end as xx --与db2用法一致

2.COALESCE 合并
COALESCE是返回表达式的第一个非空值的语句。 如果表达式的所有参数计算结果为NULL,则返回NULL。 以下是语法。
语法:COALESCE(expression 1, expression 2, …)
示例:待补充

3.NULLIF
如果参数相等,NULLIF语句返回NULL。
语法:NULLIF(expression 1, expression 2)
示例:SELECT EmployeeNo,NULLIF(DepartmentNo,3) AS department FROM Employee; --若DepartmentNo值为3,则返回null值

四、主索引
主索引用于指定数据驻留在Teradata中的位置。 它用于指定哪个AMP获取数据行。
Teradata中的每个表都需要定义主索引, 如果未定义主索引,Teradata会自动分配主索引。
主索引提供了访问数据的最快方式,最多可以有64列。
在创建表时定义主索引。 有两种类型的主索引。

-唯一主索引(UPI)
如果表被定义为具有UPI,则被认为是UPI的列不应该具有任何重复值。 如果插入任何重复值,它们将被拒绝。
示例:create TABLE … UNIQUE PRIMARY INDEX(XXX);

-非唯一主索引(NUPI)
如果表被定义为具有NUPI,则被视为NUPI的列可以接受重复值。
示例:create TABLE … PRIMARY INDEX(XXX);

五、连接
联接用于组合来自多个表的记录。 基于来自这些表的公共列/值来连接表。
有不同类型的联接可用。
Inner Join 内连接组合来自多个表的记录,并返回两个表中存在的值。
Left Outer Join 返回左表中的所有记录,并仅返回来自右表的匹配记录。
Right Outer Join 返回右表中的所有记录,并仅返回左表中匹配的行。
Full Outer Join 结合了LEFT OUTER和RIGHT OUTER JOINS的结果。 它从连接的表返回匹配和不匹配的行。
Cross Join 笛卡尔积,交叉连接将左表中的每一行连接到右表中的每一行。
Self Join
Cartesian Production Join
Merge Join
Nested Join
Hash Join
Product Join
Exclusion Join

扩展:https://blog.csdn.net/iteye_14608/article/details/82442978
https://blog.csdn.net/thy822/article/details/49422967?locationNum=12

六、子查询
子查询基于另一个表中的值从一个表返回记录。 它是另一个查询中的SELECT查询。 作为内部查询调用的SELECT查询将首先执行,结果将由外部查询使用。
它的一些突出特点是 :
-查询可以有多个子查询,子查询可以包含另一个子查询。
-子查询不返回重复记录。
-如果子查询只返回一个值,则可以使用=运算符将其与外部查询一起使用。 如果它返回多个值,可以使用IN或NOT IN。
语法:select xx from xxx where xx in (select xx from xxx)

你可能感兴趣的:(ETL)