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 展开
例如: select * from ywbalance ORDER BY kh
阴7-10-C
阴7-1-A
阴7-1-B
怎么可以是这样排序?
阴7-1-A
阴7-1-B
阴7-10-C 展开
3个回答
展开全部
截取分段排序
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)
展开全部
select * from ywbalance ORDER BY kh asc
这个是数字从小到大排列,字母从A到Z排列
这个是数字从小到大排列,字母从A到Z排列
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按照特殊字符后的数字进行排序:
正序:
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;
正序:
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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询