试图找到解决问题的有效方法 .
我有一个我正在构建的分类结构,如下所示:
Food Drinks Condiments Other
chocolate wine ketchup anything else
beef alcohol mustard
meat water honey
avocado liquor
bread
我的数据看起来像:
ID FieldOne FieldTwo FieldThree FieldFour
210 beefmeat chocolate/twi kaetfn chocolate
1520 .winefk avocadocho NULL imhungry
8889 kjhajgkjte test.com subtle NULL
1381 NULL NULL NULL NULL
假设我正在搜索4个不同的文本/ 4个不同的参考字段(FieldOne:FieldFour),这有2个进程分类方法 . 确定子类别,然后确定类别 .
第二步很简单,我只是根据从第一步创建的子类别列对食物,饮料等进行分类 .
第一步是我在玩想法 .
这是在更大的范围内完成的,理想情况下我想按特定顺序搜索4个参考字段: first 匹配任何Food子类别(即巧克力,牛肉),下一个匹配任何Drinks子类别等等(最后,任何事情)不匹配的是其他) .
我想我可以将4个引用字段连接成一个字符串,一列 - >通过一些正则表达式搜索连接字段并创建多个CASE WHEN语句进行分类,但我不确定如何在分类中应用我想要的顺序随着时间的推移,或者如果可能有更有效的方法 .
最终结果看起来像(参考字段不是必需的,但是认为看到结果如何对齐会很好):
ID FieldOne FieldTwo FieldThree FieldFour Subcategory Category
210 beefmeat chocolate/twi kaetfn chocolate chocolate Food
1520 avocadocho .winefk NULL imhungry avocado Food
8889 kjhajgkjte test.com subtle NULL Other Other
1381 NULL NULL NULL NULL NULL NULL