设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] 利用IIF、Switch函数创建自定义排序次序

[复制链接]
跳转到指定楼层
1#
发表于 2012-7-14 20:20:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有时,您可能需要进行排序的 Microsoft Access 基于自定义排序次序 (也就是不按升序或降序,而是由用户指定的排序次序)。

     附件示例“雇员”表中,如按“职务”字段升序排序,一般默认为按字母顺序:副总裁(销售)、内部销售协调员、销售代表、销售经理。但如果您想按职务高低来排序,就要用到其它方法来自定义排序次序了(见附件)。
      方法1、Switch函数排序SQL查询语句如下:

      Select 雇员.雇员ID, 雇员.姓氏, 雇员.名字, 雇员.职务
      FROM 雇员
    ORDER BY Switch([职务]="副总裁(销售)","a",[职务]="销售经理","b",[职务]="内部销售协调员","c",[职务]="销售代表","d");


      方法2、IIF函数排序SQL查询语句如下:

Select 雇员.雇员ID, 雇员.姓氏, 雇员.名字, 雇员.职务
FROM 雇员
orDER BY IIf([职务]="副总裁(销售)",1,IIf([职务]="销售经理",2,IIf([职务]="内部销售协调员",3,IIf([职务]="销售代表",4,5))));

“职务”是包含排序值的字段的名称。引号引起来的值是存储在字段中的各个值。后面的数值则是分配给它的序号。前面的表达式将序号 1 到 4 分配给四个不同的职务,并将序号 5 分配给所有其他人。执行排序时,将为此表达式中未提到的职务分配相同的序号 (5)。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2012-7-17 17:21:56 | 只看该作者
收藏备用!谢谢!

点击这里给我发消息

3#
发表于 2012-7-17 16:32:49 | 只看该作者
谢谢分享,挺实用!
4#
发表于 2012-7-16 08:58:26 | 只看该作者
谢谢分享
5#
发表于 2012-7-20 11:15:50 | 只看该作者
留下记号,以备后用
6#
发表于 2012-7-20 13:33:51 | 只看该作者
不错的思路~不过如果数据量大的话,最好新建一张“职务”表来定义次序,否则运行效率会大打折扣~
7#
 楼主| 发表于 2012-7-20 21:19:41 | 只看该作者
版主言之有理,我的示例中也有
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-6 03:08 , Processed in 0.112112 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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