如何按代码显示表顺序(如01,02 ...然后是空列)?
使用Access 2003数据库
表
姓名标题代码国籍代码
Raja 05 03
Ramu 03
Vijay 01 02
John 04 01
Roby 06
Abilash 02 05
所以......,
我想按标题代码,国籍代码
显示表格顺序在我的“国籍代码”字段中,某些列为空,因此我想按标题代码,国籍代码(如01,02 ...然后空列)显示表格顺序
我的查询。
按国籍代码,标题代码
从表格顺序中选择*Name Title Nationality
Ramu 03
Roby 06
John 04 01
Vijay 01 02
Raja 05 03
Abilash 02 05
但Null值在国籍代码中排在第一位,我想显示国籍代码,如01,02,03,05,然后是空值
需要查询帮助。
答案 0 :(得分:1)
尝试使用Nz函数为NULL列提供值,例如ORDER BY Nz(Nationality,9999999)
请注意,NZ()
仅适用于Access用户界面。对于更中性的方法,您可以尝试ORDER BY
子句中的表达式,例如
ORDER BY (LEN(nationality_code) > 0), nationality_code, title_code;
答案 1 :(得分:0)
您确定这些值是NULL而不是零长度值吗?如果是,则应将其替换为NULL,然后将列的“允许零长度”设置为false,或添加“验证规则”或“CHECK”约束以执行相同操作。
如果它们为NULL,那么这可能是一个错误。我假设你使用的是Jet 4.0,对于这种情况,NULL归类应该将NULL排序到结果集的末尾。在这种情况下,您需要解决方法(即当前选择的答案)。
关于Nulls / ZLS的注释:Access 2003(或者可能是2002年,我几乎没用过)将其表设计器中的默认值从AllowZLS:No更改为AllowZLS:是。这非常非常烦人。