我需要使用UDF在cassandra中使用nvl(oracle替换空值函数)

时间:2017-08-17 05:36:00

标签: cassandra cassandra-3.0 spring-data-cassandra

我需要使用UDF在cassandra中使用nvl(oracle替换空值函数)。 cassandra UDF的新手,所以任何人都可以在cassandra中为nvl共享UDF以替换表中的空值。

1 个答案:

答案 0 :(得分:1)

您可以使用类似下面的内容:

CREATE OR REPLACE FUNCTION custom_nvl ( val1 double, default_val double ) 
CALLED ON NULL INPUT 
RETURNS double LANGUAGE java AS 
'return (val1 == null)
            ? default_val
            : val1;';
只有cassandra 3.8及以上版本才可以

default_val的文字。

如果您需要返回常量值并使用小于3.8的cassandra版本,请使用以下内容:

CREATE OR REPLACE FUNCTION custom_udf ( val1 double) 
CALLED ON NULL INPUT 
RETURNS double LANGUAGE java AS 
'return (val1 == null)
            ? 2.0
            : val1;';

要使用UDF,您应在enable_user_defined_functions中将true设为cassandra.yaml

虽然UDF只能在SELECT语句中使用。

注意:来自cassandra 3.8 CASSANDRA-10783

支持UDF中的文字值

UDF in Cassandra

More on UDF

相关问题