sql语句中对一个字段排序,字段中含有字符串和数字,(怎根据数字进行排序)

例如:字段内容:1班级,2班级,3班级,6班级,33班级排序之后是:1班级,2班级,3班级,33班级,6班级期望结果是:1班级,2班级,3班级,6班级,33班级... 例如:字段内容:1班级,2班级,3班级,6班级,33班级
排序之后是:1班级,2班级,3班级,33班级,6班级
期望结果是:1班级,2班级,3班级,6班级,33班级
展开
 我来答
海纳百川文渊阁
2020-06-23 · TA获得超过148个赞
知道答主
回答量:70
采纳率:100%
帮助的人:8.5万
展开全部
order by 字段名称+0 desc/asc的形式进行排序
order by 字段名称*1 desc/asc的形式进行排序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
言清意L
2018-02-05 · TA获得超过3099个赞
知道大有可为答主
回答量:3462
采纳率:85%
帮助的人:926万
展开全部
假如表为test,name字段存放班级,代码如下:
select id,name,substring_index(name, '班级',1) as num
from test
ORDER BY num asc
更多追问追答
追答
另外,联系可以这么操作,实际应用最好别再SQL语句中使用函数,可以带程序中按照条件排序,不然会影响查询性能。
练习
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
stars星宇
2021-06-08 · TA获得超过776个赞
知道小有建树答主
回答量:370
采纳率:72%
帮助的人:29.4万
展开全部
按照特殊字符后的数字进行排序:

正序:

select * from table01 where ColumnNum like 'BHxxxx-%' order by cast(SUBSTRING(ColumnNum,CHARINDEX('-',ColumnNum,CHARINDEX('-',ColumnNum))+1,len(ColumnNum)) as int);

倒序:

select * from table01 where ColumnNum like 'BHxxxx-%' order by cast(SUBSTRING(ColumnNum,CHARINDEX('-',ColumnNum,CHARINDEX('-',ColumnNum))+1,len(ColumnNum)) as int) desc;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式