【发布时间】:2021-01-13 14:12:23
【问题描述】:
我对 Amazon redshift 非常陌生。我正在尝试通过添加多个列来创建 UDF 函数来创建列聚合,这是我尝试过的
CREATE OR REPLACE FUNCTION pp_calc(identifier varchar(100),table_name varchar(100))
RETURNS float
stable
as $$
BEGIN
IF identifier ='OC' THEN
EXECUTE 'SELECT identifier'||_1 + || 'identifier' ||_2 || 'FROM ' || table_name /* I want to return this addition result */
ELSE
'SELECT identifier'||_1 + || 'identifier' ||_2 || 'FROM ' || table_name
END IF;
END;
$$ LANGUAGE sql;
我正在接近返回语句的错误。我确信语法有问题。我想根据要添加列的参数将标识符作为参数传递。
【问题讨论】:
-
我不知道 Redshift,但是在 Postgres 中只能在 PL/pgSQL 中使用动态 sql,而不能在
language sql函数中使用 -
是的,我也试过了,我收到错误 [Amazon](500310) Invalid operation: language plpgsql not supported for CREATE FUNCTION;
标签: sql amazon-redshift