在条件为 SQL 的 where 子句中使用 case

Using case in where clause with conditions in SQL

我编写了以下查询以根据条件计算时间:

select  h.device_id,
        h.month_id,
        h.group,
        h.hours,
        t.class
from    dbo.network_hours h,
        dbo.monthly_class t
where   h.device_id = t.device_id
        and h.month_id = t.month_id
        and
        case when h.group IN ('Adult','Zone','Family','Latino','Comedy','West')
             then h.hours >= 0.13333                                
        end h.hours >= 0.08333;

所以 objective 是:
如果该值 >= 8 分钟(0.133 小时),则有一些 类 我需要花费的时间,而其他 类 不属于该组 时间必须 >= 5 分钟(0.0833 小时)。我已经尝试使用 CASE 进行上述操作但不确定。没有这样的错误,但我如何确保我得到 正确的价值观。 有人可以帮我解决这个问题吗?

为什么你做的这么复杂?尝试将大小写替换为 h.hours >= 0.08333 or (h.group in ('Adult'....) and h.hours>=0.13333)) 或者如果您更喜欢使用 case h.hours >= case when h.group in ('Adult'....) then 0.13333 else 0.08333 end

不会吧

where h.hours >= 
  case when h.group in ('Adult','Zone','Family','Latino','Comedy','West') then 0.13333
       else 0.08333
  end