查找单词

时间:2018-02-05 16:14:19

标签: sql firebird

我正在尝试完成以下操作。 我需要创建一个计算字段,在找到特定单词时对行进行求和。像这样:

SELECT sum(
    case 
        when product.description like'%trans%'
            or product.description like '%transitions%' 
          then sales 
        else null 
    end
    ) as transitions

如何使用条件大小写搜索列中的多个单词,只对具有这些单词的行求和?

1 个答案:

答案 0 :(得分:2)

首先,您的特定示例很差,因为'%trans%'匹配'%transitions%'。所以,这对你的例子来说已经足够了:

SELECT sum(case when product.description like '%trans%'
                then sales
           end) as transitions

您可以使用or搜索其他内容:

SELECT sum(case when product.description like '%trans%' or
                     product.description like '%cis%'
                then sales
           end) as transitions

请注意,如果您在product.description中查找单词,那么文本字段可能不是正确的结构(也就是说,您可能应该单独存储每个单词)。或者,您可能希望查看全文搜索。