问一个SQL select问题,急 比如说我有一组数据 ,一个字段为年龄。我用SELECT时有没有办法,让他不显示真正的值,而显示按年龄分组的值,例如,30以下一组,值为1,30-40为一组,值2,40以上值为3. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以使用 case when 或者 interval 函数 mysql> SELECT INTERVAL(23, 0,30, 40);+------------------------+| INTERVAL(23, 0,30, 40) |+------------------------+| 1 |+------------------------+1 row in set (0.00 sec)mysql> SELECT INTERVAL(31, 0,30, 40);+------------------------+| INTERVAL(31, 0,30, 40) |+------------------------+| 2 |+------------------------+1 row in set (0.00 sec)mysql> SELECT INTERVAL(41, 0,30, 40);+------------------------+| INTERVAL(41, 0,30, 40) |+------------------------+| 3 |+------------------------+1 row in set (0.00 sec)mysql> SELECT INTERVAL(fld, 0,30, 40);或者SELECT CASE WHEN fld<30 THEN 1 WHEN fld<40 THEN 2 ELSE 3 END; 新手求助--通过JDBC向Mysql插入中文数据时,数据库中显示两个问号 MYSQL workbench查看执行计划 mysql如何把多个空格替换成一个字符 手机号码中筛选出AABB,ABAB,AAABB等类型的号码,求SQL语句 MYSQL查询优化问题 有关日文乱码问题:Mysql中数据是日文、取下来就变成???了 请问什么是MySQl数据库? 请问这个错误是什么意思?谢谢。mysql mysql 创建分区表 数据库查找某个时间字段距离现在超过15天的数据的语句 有方法没有在Windows 版的 MySQL的库里同时存在表 a 和表A? 重复的记录 如何合并为一条
+------------------------+
| INTERVAL(23, 0,30, 40) |
+------------------------+
| 1 |
+------------------------+
1 row in set (0.00 sec)mysql> SELECT INTERVAL(31, 0,30, 40);
+------------------------+
| INTERVAL(31, 0,30, 40) |
+------------------------+
| 2 |
+------------------------+
1 row in set (0.00 sec)mysql> SELECT INTERVAL(41, 0,30, 40);
+------------------------+
| INTERVAL(41, 0,30, 40) |
+------------------------+
| 3 |
+------------------------+
1 row in set (0.00 sec)mysql>
或者
SELECT CASE WHEN fld<30 THEN 1 WHEN fld<40 THEN 2 ELSE 3 END;