sql 字母数字组合 排序

sqlserver字母和数字符号混合排序问题例如:select*fromywbalanceORDERBYkh阴7-10-C阴7-1-A阴7-1-B怎么可以是这样排序?阴7... sql server 字母和数字 符号混合排序问题
例如: select * from ywbalance ORDER BY kh
阴7-10-C
阴7-1-A
阴7-1-B

怎么可以是这样排序?
阴7-1-A
阴7-1-B
阴7-10-C
展开
 我来答
szm341
推荐于2017-09-07 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5158万
展开全部

截取分段排序

order by left(kh,charindex('-',kh)-1)
,convert(int,substring(kh,charindex('-',kh)+1,charindex('-',kh,charindex('-',kh)+1)-charindex('-',kh)-1))
,right(kh,len(kh)-charindex('-',kh,charindex('-',kh)+1))
更多追问追答
追问
向 substring 函数传递了无效的 length 参数。
追答
这个语句我已经测试过了,如果出现错误就是你的这个排序字段有其他格式干扰
另外,如果你只用最后一位的字母排序的话,直接截取最后一位也可以,中间的忽略
order by left(kh,charindex('-',kh)-1),right(kh,1)
syshowyusy
2013-08-10 · 超过19用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:51.9万
展开全部
select * from ywbalance ORDER BY kh asc

这个是数字从小到大排列,字母从A到Z排列
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
stars星宇
2021-06-08 · TA获得超过776个赞
知道小有建树答主
回答量:370
采纳率:72%
帮助的人:29.2万
展开全部
按照特殊字符后的数字进行排序:

正序:

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

提交
取消

辅 助

模 式