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