设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2419|回复: 5
打印 上一主题 下一主题

[查询] 数字形式的文本字段排序

[复制链接]
跳转到指定楼层
1#
发表于 2013-3-20 11:28:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,我有一个文本字段,里面的数据是字母加数字格式的如 STCS-130012-1,STCS-130012-2,STCS-130012-3......按正常排序时 显示顺序 STCS-130012-1,STCS-130012-11,STCS-130012-12...2,21,22...  请教大家有没有好方法按STCS-130012-1,STCS-130012-2,STCS-130012-3,STCS-130012-4....顺序来排序
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2013-3-20 11:53:33 | 只看该作者
改成
STCS-130012-001
STCS-130012-002
3#
发表于 2013-3-20 13:31:20 | 只看该作者
select * from 阁下的表名称 order by val(mid(阁下的字段名称,InstrRev(阁下的字段名称,"-")+1))
4#
 楼主| 发表于 2013-3-20 14:26:26 | 只看该作者
谢谢楼上的解答和帮助,依据现有的数据采用了val(mid(阁下的字段名称,InstrRev(阁下的字段名称,"-")+1))。但该字段数据有很多采用字母加数字的,不很规律。如CK531234-1......   DFZ243212-1.......会把所有的按尾数取值排序,从长远看还是要按网络蜘蛛所说的规范数据才行。
5#
发表于 2013-3-20 16:39:24 | 只看该作者
shindo8888 发表于 2013-3-20 14:26
谢谢楼上的解答和帮助,依据现有的数据采用了val(mid(阁下的字段名称,InstrRev(阁下的字段名称,"-")+1))。但 ...

一回事,用截取两个变量排序即可:
order by left(阁下的字段名称,InstrRev(阁下的字段名称,"-")),val(mid(阁下的字段名称,InstrRev(阁下的字段名称,"-")+1))

还可以先截取再拼接排序:
order by left(阁下的字段名称,InstrRev(阁下的字段名称,"-")) & foramt(mid(阁下的字段名称,InstrRev(阁下的字段名称,"-")+1),"0000")

如果不打算修改字段内容,有很多办法来解决这个问题。
6#
 楼主| 发表于 2013-3-21 09:03:54 | 只看该作者
哇,真厉害喔,非常谢谢todaynew喔.想法很不错呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-25 07:12 , Processed in 0.159505 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表