Teradata coalesce指南

393 阅读5分钟

Teradata coalesce

Teradata coalesce简介

Teradata Coalesce是一个非空值评估函数。基本上,在所有SQL环境中,这些Coalesce和Is Null函数有助于非空值的评估过程。 在SQL处理中,当进行SQL评估时,可能会出现用用户定义的值替换所有Null值的情况。在进行这种替换后,可能需要评估列中的任何进一步的Null值。为了达到这个目的,可以有效地使用Coalesce过程。因此,coalesce有助于识别给定参数集中的第一个非NULL项。当一组参数被传递给Coalesce函数时,那么在给定的参数列表中的第一个Non-NULL值会被挑选出来。如果字符串表达式中的所有参数都是NULL,那么就会返回一个NULL值。

语法。

COALESCE (Scalar expression)

语法元素说明
标量表达式标量表达式是一组参数列表,这些参数列表将被coalesce函数评估为NULL值。只要在参数列表中确定了一个NULL值,那么这些值就会被返回。

在标量表达式列表中至少要有两个参数。

这里标量表达式指的是会产生标量值的表达式;这些标量值是单子数字值。标量是一个非正式的无附加的数值(如1、2/3、3.14等),一般是整数、常数点或浮点数(未婚或双数),在住数组、结构、对象、复数向量(实际加虚数或意义加透视分量)、更好的维度向量或矩阵(等等

Teradata SUBSTRING规则、类型和合规性

  • COALESCE符合ANSI SQL:2011标准。
  • 标量表达式将被评估两次;第一次,将评估搜索条件,然后在下一次,对于评估的搜索条件,将评估一个返回值。
  • 对于什么样的数据类型可以用于凝聚的Null验证过程总是有限制的;有些数据类型可以很容易地使用,而其他几种数据类型则需要在上面应用一个铸造的过程来实现。下一节将简要介绍每一种类型的数据类型都需要哪些处理或铸造。更重要的是,如果相关的处理没有应用到数据上,那么数据类型将导致返回错误。此外,在数据结构环境中的复杂数据类型也需要这些处理。通常的数据类型其实不需要;coalesce有能力简单地一次性处理这些简单的数据类型,而不需要在上面应用任何主导的处理。
  • 下面是适用于在凝聚中使用BLOB、CLOB和UDT等数据类型的限制列表。当这些数据类型上不应用上述的铸造处理时,那么它可以根据需要使用;当铸造为BYTE或VARBYTE时,那么可以使用BLOB数据类型的变量。BLOB数据类型不能直接在参数列表中使用而不应用这个转换过程。当转换为CHAR或VARCHAR时,可以使用BLOB数据类型变量。如果不应用这个转换过程,BLOB数据类型不能直接在参数列表中使用。
  • 通过非决定性的函数,其中包括RANDOM,在一个scalar_expression_n中同样可以额外地参与突然的结果,由于元素如果scalar_expression_n的主要计算不是NULL,该scalar_expression_n的第二个计算,可能作为COALESCE表达式的输出返回,可能为NULL。
  • 除了列名作为标量表达式的参数外,甚至标量子查询也可以应用于该函数。更确切地说,只有标量子查询可以使用其他标量子查询如果使用非标量子查询,那么将返回错误。这些无标量函数是指涉及多条记录的函数。

Teradata COALESCE 示例

下面的部分提到了涉及Teradata COALESCE函数实际执行的例子;这些执行的相应Snap也被分享。

下面分享EDUCBA.COALESC表的快照;该快照在数据库中只保留FIRSTNAME和LASTNAME列;该快照可作为数据中是否存在空值的参考。

Teradata coalesce output 1

表的创建和插入查询。

CREATE SET TABLE EDUCBA.COALESCE(ID INTEGER, FIRSTNAME VARCHAR(100),LASTNAME(100)); INSERT INTO EDUCBA.COALESCE(ID, FIRSTNAME, LASTNAME) VALUES(103,NULL,'KESHAV'); INSERT INTO EDUCBA.COALESCE(ID, FIRSTNAME, LASTNAME) VALUES(104,NULL,'RAJAN'); INSERT INTO EDUCBA.COALESCE(ID, FIRSTNAME, LASTNAME) VALUES(105,'MITHRA,NULL); INSERT INTO EDUCBA.COALESCE(ID, FIRSTNAME, LASTNAME) VALUES(106,'ANJALI','KASHYUP SINGH'); INSERT INTO EDUCBA.COALESCE(ID, FIRSTNAME, LASTNAME) VALUES(107,'ÁGAYANI','MITHAL');

例子。

这里的例子涉及到有三列的表;第一列是整数数据类型的ID列,而第二列是FIRSTNAME类型的varchar列;另一方面,第三列是varchar类型的,充满了LASTNAME值。这里除了ID列外,FIRSTNAME和LASTNAME中也广泛填写了NULL值。因此,当COALESCE函数被放在FIRSTNAME和LASTNAME列上时,它检查并返回不为空的列值。如果两列都是NULL,那么将返回一个NULL值。下面的例子的输出显示了行的有效值;当应用COALESCE函数时,其他空值将单独从查询中返回。

查询。

SELECT ID, COALESCE (FIRSTNAME, LASTNAME) AS NAME FROM EDUCBA.COALESCE;

快照。

Teradata coalesce output 2

结论

识别非空值或确定涉及非空值的行是数据验证的一个关键过程。这个过程有助于识别正在使用的数据的性质和数据的人口统计学表现。对于主要从事数据工作的分析师来说,这种人口统计学上的表现将是一个主要因素。在这里,像Coalesce这样的函数是面向关系型数据库环境中最关键的预定义函数之一,它有助于实现这些基于Null的评估。从Teradata的角度来看,这个企业数据库有多种技术来执行这种Null验证或评估过程,而Coalesce是其中之一,可以强烈建议使用。

推荐文章

这是一个关于Teradata凝聚的指南。在这里,我们讨论了Teradata SUBSTRING的规则、类型和遵从性,以及例子。你也可以看看下面的文章,以了解更多信息

  1. 在Teradata中快速加载
  2. Teradata中的收集统计信息
  3. 淘宝网上有哪些商品?
  4. 淘宝网上有哪些商品?

The postTeradata coalesceappeared first onEDUCBA.