Beast mode按指定规则匹配提取日期字段的实现方法
Domo Beast Mode 实现规则化日期提取
核心判断规则
- 校验
description字段的前4个字符:- 若值为
*SLD:从该字段文本中解析提取内嵌日期作为output Date - 若不匹配前缀:直接取
orddate字段的日期值作为output Date
- 若值为
规则匹配样例
| description | orddate | output Date |
|---|---|---|
| *SLD 5/18/22 Rimel | 5/2/2022 | 5/18/2022 |
| SOLD mila | 5/3/2022 | 5/3/2022 |
| *SLD 5/23/22 345671 kilo | 5/15/2022 | 5/23/2022 |
| *SLD 5/14/22 jing ming | 5/1/2022 | 5/14/2022 |
| 123566 | 5/12/2022 | 5/12/2022 |
可直接使用的Beast Mode表达式
CASE WHEN LEFT(description, 4) = '*SLD' THEN STR_TO_DATE(SUBSTRING_INDEX(SUBSTRING(description, 6), ' ', 1), '%c/%e/%y') ELSE orddate END
注:上述表达式默认匹配样例中
*SLD后紧跟M/D/YY短格式日期的场景,如果实际数据中日期格式有差异,调整STR_TO_DATE第二个参数的格式符即可。
表达式逻辑拆解
LEFT(description, 4):截取description字段前4位,完成前缀匹配校验SUBSTRING(description, 6):跳过固定前缀*SLD(共5位,含后缀空格),截取后续文本SUBSTRING_INDEX(..., ' ', 1):提取后续文本中第一个空格前的内容,也就是前缀后紧接的日期字符串STR_TO_DATE(...):将提取到的文本日期转为标准日期格式输出CASE分支未匹配前缀时,直接返回orddate字段值
内容的提问来源于stack exchange,提问作者user3369545
相关产品推荐
相关产品推荐

