Google bigquery 在bigquery中对同一列应用不同的条件

Google bigquery 在bigquery中对同一列应用不同的条件,google-bigquery,Google Bigquery,我有一个输入表。我需要根据几个条件得到输出 如果Type=“存款”,则输出=值 如果Type=“Card”和条件为(“已批准”,“已批准:有条件”),则输出=值, 如果Type=“Card”和Condition=“referenced”,则输出=0.4*值 您可以使用大小写表达式: CASE WHEN type = 'Deposit' THEN value WHEN type = 'Card' AND condition IN ('approved', 'approved:conditiona

我有一个输入表。我需要根据几个条件得到输出

  • 如果Type=“存款”,则输出=值
  • 如果Type=“Card”和条件为(“已批准”,“已批准:有条件”),则输出=值, 如果Type=“Card”和Condition=“referenced”,则输出=0.4*值

  • 您可以使用
    大小写
    表达式:

    CASE 
    WHEN type = 'Deposit' THEN value
    WHEN type = 'Card' AND condition IN ('approved', 'approved:conditionally') THEN value
    WHEN type = 'Card' AND condition IN ('referred') THEN value * 0.4
    END
    

    下面是BigQuery标准SQL

    根据您的示例数据,唯一改变输出值的情况是
    如果Type=“Card”和Condition=“referenced”
    ,那么您可以将逻辑简化为如下所示

    CASE 
      WHEN (type, condition) = ('Card', 'referred') THEN value * 0.4
      ELSE value
    END output