asp 楼栋号排序问题

myclap2 2017-10-05 02:34:24
这个有个yezhu的表,里面danyuan的排序为:
1-3-302
1-2-402
1-2-501
1-2-502
1-2-601
1-2-602
1-3-101
1-2-401
1-3-202
1-3-201
1-3-401
1-3-402
1-3-501
1-3-502
1-3-601

现在想对其进行排序。正确的排序顺序应该是:
1-2-401
1-2-402
1-2-501
1-2-502
1-2-601
1-2-602
1-3-101
1-3-201
1-3-302
1-3-401
1-3-402
1-3-501
1-3-502
1-3-601
我是这样的写的
sql="select * from yezhu order by left(danyuan,instr(3,danyuan,'-')-1)",但是最后一位不能按从小到大的顺序排序。请各位大神给点建议。
...全文
419 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
myclap2 2017-10-08
  • 打赏
  • 举报
回复
测试了下。
引用 3 楼 hookee 的回复:
试试看 SELECT ..... ORDER BY a, b , c // a b c分别取字段 danyuan 各部分 最好查入的时候就分成三个字段
这个测试没有问题。
hookee 2017-10-07
  • 打赏
  • 举报
回复
试试看 SELECT ..... ORDER BY a, b , c // a b c分别取字段 danyuan 各部分 最好查入的时候就分成三个字段
hongmei85 2017-10-05
  • 打赏
  • 举报
回复

if not object_id(N'yezhu') is null
    drop table yezhu
Go
Create table yezhu([danyuan] nvarchar(28))
Insert yezhu
select N'1-3-302' union all
select N'1-2-402' union all
select N'1-2-501' union all
select N'1-2-502' union all
select N'1-2-601' union all
select N'1-2-602' union all
select N'1-3-101' union all
select N'1-2-401' union all
select N'1-3-202' union all
select N'1-3-201' union all
select N'1-3-401' union all
select N'1-3-402' union all
select N'1-3-501' union all
select N'1-3-502' union all
select N'1-3-601' 
Go

select * from yezhu order by danyuan
myclap2 2017-10-05
  • 打赏
  • 举报
回复
这个表3622个数据。我只是截取了一小部分。我一会儿试试看能否达到排序的效果!

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧