我需要帮助来撰写案例陈述。我的一个表中有一列有一些值,我想从这些值中生成一个字符串。下面是我在表格中的列以及我想看到的输出。
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 |
+-----+--------+
演示