【问题标题】:How to specify any type for a Snowflake SQL UDF如何为 Snowflake SQL UDF 指定任何类型
【发布时间】:2020-12-18 23:10:54
【问题描述】:

Snowflake UDF require 指定输入类型。我想使用像hash 这样的函数,它可以将多种数据类型作为输入。如果我尝试在 BigQuery 中使用的内容:


CREATE FUNCTION hash_mod (x any type) returns int AS
$$
hash(x) % 100
$$
;

我收到错误 SQL compilation error: syntax error line 1 at position 28 unexpected 'any'

【问题讨论】:

    标签: sql user-defined-functions snowflake-cloud-data-platform sql-function


    【解决方案1】:

    你可以使用variant作为类型:

    CREATE FUNCTION hash_mod (x variant) returns int AS
    $$
    hash(x) % 100
    $$
    ;
    
    select hash_mod(1);
    select hash_mod(1.1);
    

    【讨论】:

    • variant 适用于某些类型,但被时间戳阻塞。但是这个答案让我尝试了varchar,由于某种原因它起作用了。此外,显然雪花允许对这些 UDF 进行多次调度,这为我的问题提供了更多解决方案,尽管我在文档中的任何地方都找不到该术语。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-25
    • 2019-12-11
    • 2016-01-18
    相关资源
    最近更新 更多