本文使用的是SQLserver数据库测试,其他数据库类似.
1.首先看下表结构,建表语法自行百度.
2.插入数据
默认排序是按ID进行排序的
select stu_id ,stu_name from student order by stu_id.
效果如上图,现在需要按姓名排序,姓名数据类型是字符,但里面的内容数字.
下来测试按姓名排序:
select stu_id ,stu_name from student order by stu_name.
效果如下图:
观察发现并不是按预想的格式从小到大排序,而是首位数字最小的在前面.
有人会说直接将name这个字段转换成数字,会发现是不行的.13行14行又不是纯数字,无法进行强制转换
博主这来测试了一个写法大家可以参考下.
select stu_id ,stu_name from student order by right ('0000000000'+stu_name,10)
具体为何这样写,大家可以自行百度,实际效果如下图: