【问题标题】: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');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-22
      • 1970-01-01
      • 2016-04-21
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多