【问题标题】:How can I pass a string to AWS redshift user defined function?如何将字符串传递给 AWS redshift 用户定义函数?
【发布时间】:2018-06-30 18:44:12
【问题描述】:
我想创建一个用户定义的函数来实现 IFNULL 的功能,就像在 mySQL 中一样。
create function IFNULL (a varchar, b varchar)
returns varchar
stable
as $$
if a == NULL:
return b
$$ language plpythonu;
但是这期望 b 是一个表名并且提供字符串会引发错误。如何更改参数以接收常量(字符串)?
【问题讨论】:
标签:
mysql
amazon-redshift
【解决方案1】:
你的代码不太对,试试这个
create or replace function f_null(a varchar, b varchar)
returns varchar
stable
as $$
if a == '' or a is None:
return b
else:
return a
$$ language plpythonu;
然后去测试
select f_null(null,'sdf');
select f_null('','sdf');
select f_null('validstr','sdf');
另外,为什么不直接使用内置函数“coalesce”
如果您不想替换空白字符串,请使用:
select coalesce(null,'sdf');