这是我的表数据....
id days
-----------
1 10
20
3 30
4 25
5 5
Run Code Online (Sandbox Code Playgroud)
我想要结果
id days resultcolumn
1 10 less than 10
2 20 less than 20
3 30 less than 30
4 25 less than 30
5 5 less than 10
Run Code Online (Sandbox Code Playgroud)
我用过查询
SELECT id,days,
CASE days
WHEN days<=10 THEN 'less than 10'
WHEN days<=20 THEN 'less than 20'
WHEN days<=30 THEN 'less than 30'
END AS 'days2'
FROM calender
Run Code Online (Sandbox Code Playgroud)
但我得到了结果数据
id days resultcolumn
1 10 {null}
2 20 {null}
3 30 {null}
4 25 {null}
5 5 {null}
Run Code Online (Sandbox Code Playgroud)
如何在mysql中使用case语句获取原始结果?
小智 9
试试这个:
SELECT
id,
days,
CASE WHEN days<=10 THEN 'less than 10'
WHEN days<=20 THEN 'less than 20'
WHEN days<=30 THEN 'less than 30' END AS 'days2'
FROM calender
Run Code Online (Sandbox Code Playgroud)
你可以在没有构造的情况下做到这一点CASE ... WHEN。只需使用简单的数学即可。
SELECT *,
CONCAT('less than ', CEIL(`days`/10)*10) AS `resultcolumn`
FROM `Table1`
Run Code Online (Sandbox Code Playgroud)
这可以防止分支预测失败。因此,对于大数据集来说,速度会更快。
| 归档时间: |
|
| 查看次数: |
15743 次 |
| 最近记录: |