DataWorks Invalid regular expression pattern

错误:invalid regular expression pattern: in function rlike, pattern cannot be empty string

代码:
MAX(
CASE WHEN c.brand_id IS NULL
OR a.title IS NULL
OR c.op_brand_words IS NULL THEN 0
WHEN c.brand_id IS NOT NULL AND c.op_brand_words = '' THEN 0
WHEN c.brand_id IS NOT NULL AND a.title RLIKE REGEXP_REPLACE(REGEXP_REPLACE(c.op_brand_words,'[[:punct:]]',''),',','|') THEN 1
ELSE 0
END
) AS itm_brand_in_title_b

展开
收起
游客d2romxgcnr2ru 2024-08-08 16:50:48 133 分享 版权
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    使用 COALESCE 函数来确保传入 REGEXP_REPLACE 的参数不会是空字符串。
    使用 IF 或 CASE WHEN 语句来检查字符串是否为空,并在这种情况下提供一个非空的默认值。

    MAX(
    CASE
    WHEN c.brand_id IS NULL
    OR a.title IS NULL
    OR c.op_brand_words IS NULL THEN 0
    WHEN c.brand_id IS NOT NULL AND c.op_brand_words = '' THEN 0
    WHEN c.brand_id IS NOT NULL AND a.title RLIKE COALESCE(REGEXP_REPLACE(REGEXP_REPLACE(c.op_brand_words, '[[:punct:]]', ''), ',', '|'), '') THEN 1
    ELSE 0
    END
    ) AS itm_brand_in_title_b

    2024-08-09 09:05:34
    赞同 7 展开评论

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

还有其他疑问?
咨询AI助理