ANY_VALUE 函数 - Amazon Redshift

ANY_VALUE 函数

ANY_VALUE 函数以非确定方式返回输入表达式值中的任何值。如果输入表达式未导致任何行被返回,则此函数返回 NULL。如果输入表达式中有 NULL 值,则此函数也可以返回 NULL

语法

ANY_VALUE( [ DISTINCT | ALL ] expression )

参数

DISTINCT | ALL

指定 DISTINCT 或 ALL 以从输入表达式值中返回任何值。DISTINCT 参数没有任何效果,将被忽略。

expression

对其执行函数的目标列或表达式。表达式为以下数据类型之一:

  • SMALLINT

  • INTEGER

  • BIGINT

  • DECIMAL

  • REAL

  • DOUBLE PRECISON

  • BOOLEAN

  • CHAR

  • VARCHAR

  • DATE

  • TIMESTAMP

  • TIMESTAMPTZ

  • TIME

  • TIMETZ

  • INTERVAL YEAR TO MONTH

  • INTERVAL DAY TO SECOND

  • VARBYTE

  • SUPER

  • HLLSKETCH

  • GEOMETRY

  • GEOGRAPHY

返回值

返回与 expression 相同的数据类型。

使用说明

如果为列指定 ANY_VALUE 函数的语句也包含第二列引用,则第二列必须出现在 GROUP BY 子句中或包含在聚合函数中。

示例

这些示例使用在《Amazon Redshift 入门指南》的步骤 4:从 Amazon S3 中加载示例数据中创建的事件表。以下示例返回事件名称为 Eagles. 的任何日期 ID 的实例。

select any_value(dateid) as dateid, eventname from event where eventname ='Eagles' group by eventname;

以下是结果。

dateid | eventname -------+--------------- 1878 | Eagles

以下示例返回事件名称为 Eagles 或 Cold War Kids 的任何日期 ID 的实例。

select any_value(dateid) as dateid, eventname from event where eventname in('Eagles', 'Cold War Kids') group by eventname;

以下是结果。

dateid | eventname -------+--------------- 1922 | Cold War Kids 1878 | Eagles