-1

如何为涉及所有变量的条件的单个组编写特定的 double 或(multiple)where 语句条件。我来给你展示。

    select 
    case, group, department, riskscore 
    from sometable 
    where department in ('A', 'B')  -- condition that count for group A, B
or (group = 'one' and riskscore>5.5) -- condition count for one
or (group = 'two' and riskscore>8.0) - condition count for two

如您所见,该程序将选择所有第一组+ 5.5> 和第二组+ 8.0>,但我也需要他们参与 A、B 部门。

我知道您可以按如下方式编写它,但我想知道是否可以单独编写它,而不必复制对两组都重要的所有信息。

select 
        case, group, department, riskscore 
        from sometable 
        where (group in ('A', 'B') and group in ('one') and riskscore>5.5)
or (group in ('A', 'B') and group in ('two') and riskscore>8.0)
4

2 回答 2

1

您需要在条件之间合乎逻辑AND

department in ('A', 'B')

和条件:

(`group` = 'one' and riskscore>5.5) or (`group` = 'two' and riskscore>8.0)

像这样:

where department in ('A', 'B')  
  and (     
           (`group` = 'one' and riskscore>5.5)
        or (`group` = 'two' and riskscore>8.0)
      )
于 2021-02-28T10:22:43.823 回答
0

您可以进行嵌套查询(根据情况可能会出现性能问题。例如:

select required_columns 
from (
      SELECT required_columns 
      from some_table
      where department in ('A', 'B')
) Where (group = 'one' and riskscore>5.5) 
 or (group = 'two' and riskscore>8.0)
于 2021-02-28T10:26:15.063 回答