使用正则表达式提取雪花中的特定文本

时间:2020-09-24 23:42:09

标签: snowflake-cloud-data-platform

data input/table

想要获取键[工作订单说明:]的值并打印。

使用的脚本:

CREATE TABLE demo3 (id INT, log VARCHAR);
INSERT INTO demo3 (id, log) VALUES 
(1, 'Work order submitted on 12-03-2020
Work Order Description:Lights are not working
Work order status:Completed'),
(2, 'Work order submitted on 5-04-2020
Work order Priority:P3
Work Order Description:Electrical equipment issue
Work order status:Completed');

已实施的解决方案: 从demo3中选择id,substr(log,regexp_instr(log,'工作单说明:')+ 23,300)作为日志;

实现的解决方案输出:

id log
1  Lights are not working Work order status:Completed
2  Electrical equipment issue Work order status:Completed

问题: 最后几行也附加到输出。取而代之的是,我希望在行尾处修剪输出。

所需的期望输出:

1, Lights are not working
2, Electrical equipment issue

任何帮助将不胜感激。预先感谢。

1 个答案:

答案 0 :(得分:4)

您可以按以下方式使用REGEXP_SUBSTR()

WITH data AS (
SELECT 2 AS id, 'Work order submitted on 5-04-2020
Work order Priority:P3
Work Order Description:Electrical equipment issue
Work order status:Completed' AS log
)

SELECT id, REGEXP_SUBSTR(log, 'Work Order Description:(.*)', 1, 1, 'e')
FROM data