【问题标题】:Druid SQL: get substring issueDruid SQL:获取子字符串问题
【发布时间】:2020-12-12 10:53:36
【问题描述】:

有一个包含逗号分隔值的表格列,例如:

abc321,rd512,spwewr

我需要提取从用户定义模式开始的子字符串。 示例:

Input Pattern |  Expected result
abc              abc321
r                rd512
spwe             spwewr
b                NULL

Druid SQL 中的以下失败:

SELECT SUBSTRING('abc321,rd512,spwewr', POSITION('r' IN 'abc321,rd512,spwewr'), 2)

这是已知的德鲁伊错误: “子字符串运算符转换器不能正确处理非常量文字”:

https://issues.apache.org/jira/browse/CALCITE-2226

我认为要走的路是使用 REGEXP_EXTRACT() 或 REGEXP_LIKE() 但我无法弄清楚具体的语法。

【问题讨论】:

    标签: sql druid


    【解决方案1】:
    select regexp_extract('abc321,rd512,spwewr', 'rd[^,]+', 0)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-05
      • 2012-02-15
      • 1970-01-01
      • 2014-05-25
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多