试图找到解决问题的有效方法 .

我有一个我正在构建的分类结构,如下所示:

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