在构建案例陈述时需要帮助



我需要帮助来撰写案例陈述。我的一个表中有一列有一些值,我想从这些值中生成一个字符串。下面是我在表格中的列以及我想看到的输出。

Risk Score

1.70
2.10
2.60
3.00
3.20
3.60
3.80
4.00
4.10
4.30
4.60
4.90
5.20
5.40
5.50
5.60
5.80
6.10
6.40
6.60
6.80
7.10
7.50

所以我的要求是我想要一个案例陈述,如果风险评分为>0 和 <=3,它必须达到Low桶,如果风险评分为>3 且 <=6,它必须达到Medium桶,如果风险评分为>6,它必须达到High

问候

维卡斯

您可以利用 CASE 表达式中子句的短路计算:

...
    case when risk_score > 6 then 'high'
         when risk_score > 3 then 'medium'
         when risk_score > 0 then 'low'
         else                     'some_description_here'
    end
        as bucket

ELSE部分用于除> 0以外的风险评分。(风险评分为 0,如果可能,则为负,或者 - 更有可能 - NULL ,如果在您的表中可能的话。如果不需要ELSE分支,则不需要。

你只需要一个简单的CASE

SELECT val
    ,CASE 
        WHEN val > 0
            AND val <= 3
            THEN 'LOW'
        WHEN val <= 6
            THEN 'medium'
        WHEN val > 6
            THEN 'High'
        END AS bucket
FROM table1;

结果:

+-----+--------+
| VAL | BUCKET |
+-----+--------+
| 1.7 | LOW    |
| 2.1 | LOW    |
| 2.6 | LOW    |
| 3   | LOW    |
| 3.2 | medium |
| 3.6 | medium |
| 3.8 | medium |
| 4   | medium |
| 4.1 | medium |
| 4.3 | medium |
| 4.6 | medium |
| 4.9 | medium |
| 5.2 | medium |
| 5.4 | medium |
| 5.5 | medium |
| 5.6 | medium |
| 5.8 | medium |
| 6.1 | High   |
| 6.4 | High   |
| 6.6 | High   |
| 6.8 | High   |
| 7.1 | High   |
| 7.5 | High   |
+-----+--------+

演示

最新更新