SQL中的瀑布CASE语句

时间:2021-01-27 23:42:52

标签: mysql sql case amazon-redshift

我正在编写一个查询,我想在使用 case when 语句时限制进入 when 条件的行数。例如,我试图做的是对于任何具有 procurability_status_code ='Y' 的产品,when 语句应该只处理满足第一个 case 条件的记录,然后过滤掉 在第二个 case 语句中带有filtered_by_guardrail_mean_2WoC_ucd_invdr = '0' 的产品以检查第三个when 语句。在这种情况下,类似于瀑布模型。有没有办法在下面提供的查询中做到这一点。

(case when procurability_status_code ='Y' then '0' when filtered_by_guardrail_mean_2WoC_ucd_invdr = '0' and procurability_status_code ='Y' then '0' when filtered_by_guardrail_mod_20 = '0' and filtered_by_guardrail_mean_2WoC_ucd_invdr = '0' and procurability_status_code ='Y' then '0' else '1' end) as filtered_by_guardrail_mod_20,
    (case when procurability_status_code ='Y' then '0' when filtered_by_guardrail_mod_12 = '0' and procurability_status_code ='Y' then '0' when filtered_by_guardrail_mod_21 = '0' and filtered_by_guardrail_mod_12 = '0' and procurability_status_code ='Y' then '0' else '1' end) as filtered_by_guardrail_mod_21,
    (case when procurability_status_code ='Y' then '0' when filtered_by_guardrail_mod_13 = '0' and procurability_status_code ='Y' then '0' when filtered_by_guardrail_mod_22 = '0' and filtered_by_guardrail_mod_13 = '0' and procurability_status_code ='Y' then '0' else '1' end) as filtered_by_guardrail_mod_22,```

0 个答案:

没有答案