我需要使用 UDF 在 cassandra 中使用 nvl(oracle 替换空值函数)
I need nvl (the oracle replace null values function) in cassandra using UDF
我需要在使用 UDF 的 cassandra 中使用 nvl(oracle 替换空值函数)。 cassandra UDF 的新手,所以任何人都可以共享 cassandra 中 nvl 的 UDF 以替换表中的空值。
您可以使用类似于下面的内容:
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;';
default_val
的文字仅在 cassandra 3.8 及更高版本中可用。
如果您需要 return 常量值并且使用的 cassandra 版本低于 3.8,则使用类似的东西:
CREATE OR REPLACE FUNCTION custom_udf ( val1 double)
CALLED ON NULL INPUT
RETURNS double LANGUAGE java AS
'return (val1 == null)
? 2.0
: val1;';
要使用 UDF
,您应该在 cassandra.yaml
中将 enable_user_defined_functions
设置为 true
。
虽然UDF
只能在SELECT
语句中使用。
注意: Cassandra 3.8 支持 UDF 中的文字值 CASSANDRA-10783
我需要在使用 UDF 的 cassandra 中使用 nvl(oracle 替换空值函数)。 cassandra UDF 的新手,所以任何人都可以共享 cassandra 中 nvl 的 UDF 以替换表中的空值。
您可以使用类似于下面的内容:
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;';
default_val
的文字仅在 cassandra 3.8 及更高版本中可用。
如果您需要 return 常量值并且使用的 cassandra 版本低于 3.8,则使用类似的东西:
CREATE OR REPLACE FUNCTION custom_udf ( val1 double)
CALLED ON NULL INPUT
RETURNS double LANGUAGE java AS
'return (val1 == null)
? 2.0
: val1;';
要使用 UDF
,您应该在 cassandra.yaml
中将 enable_user_defined_functions
设置为 true
。
虽然UDF
只能在SELECT
语句中使用。
注意: Cassandra 3.8 支持 UDF 中的文字值 CASSANDRA-10783