或逻辑续集

时间:2013-09-26 09:44:29

标签: sql

这是我在这里复制的代码的一部分。我被卡住的逻辑是我想计算除了天空体育以外的所有频道的点击量(和其他类型描述体育电视) 我不认为我的逻辑在这里工作。

count(case when CHANNEL_NAME NOT IN('Sky Sports 3'
,'Sky Sports 1'
,'Sky Sports 2'
,'Sky Sports 4'
,'Sky Sports F1'
,'Sky Sports Ashes'
,'Sky Sports Interactive Lo 7'
,'Sky Sports Interactive Lo 1'
,'Sky Sports Ineractive Hi 5'
,'Sky Sports Ineractive Hi 1'
,'Sky Sports Ineractive Hi 4'
,'Sky Sports Interactive Lo 9'
) or (channel_name <> 'Other TV' and genre_description <> 'Sports') then 1 end) 

2 个答案:

答案 0 :(得分:1)

sum(case when CHANNEL_NAME LIKE 'Sky Sports%'
                OR (channel_name = 'Other TV' AND genre_description = 'Sports')
           then 0 
           else 1
      end) 

答案 1 :(得分:1)

此处or的使用不准确。例如,如果名称为"Other TV",则它将匹配第一个条件(名称不是"sky sports something")并将包含在内。您应该使用and,因为您希望频道符合所有条件。