我在表A的A列(源字符串)中有自由样式的文本。我试图用表B的B列(子字符串)中的每个值解析A列。要查看b列中的任何子字符串是否为出现在A列中。如果存在子字符串,那么我想要对应的C列(类别)作为结果
我能够通过类似下面的case语句实现较小数据集的实现,但是子字符串和类别的列表不断增加。我该怎么做。
SELECT A.sourcestring, A.primarykey, B.substring, B.category,
CASE
WHEN lower(sourcestring) IS NULL THEN NULL
WHEN lower(sourcestring) RLIKE '%blister|burn|fire|grill|hot|lighter|oven|scald|scorch|stove|torch|welder%'
THEN 'burn '
ELSE 'other'
END
表A
sourcestring
"i am here"
"he is here"
表B
substring | category
"here" | "present"
"not" | "not present"
"mad" | "not related"
我希望结果表为
表c
sourcestring resultcategory
"i am here" "present"
"he is here" "present"