在撰写案例陈述时我需要帮助。我在我的一个表中有一个列有一些值,我想用这些值生成一个字符串。下面是我在表格中的列以及我希望看到的输出。
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
桶
此致
维卡斯
答案 0 :(得分:2)
您可以利用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
分支,则不需要。
答案 1 :(得分:0)
您只需要一个简单的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 |
+-----+--------+
<强> DEMO 强>