按条款排序与访问中的不同冲突?

时间:2011-07-18 14:36:25

标签: sql ms-access

请帮助我,因为我无法解决这个问题

尝试执行此语句时:

SELECT distinct grade
FROM tblStudents
ORDER BY Val([grade]),grade;

访问权限告诉我ORDER BY子句Val([grade])Distinct

冲突

我该如何解决这个问题?

提前谢谢

3 个答案:

答案 0 :(得分:8)

您不能通过未在select distinct语句中列出的列进行排序;如果你想将等级强制转换为整数;

SELECT DISTINCT Val([grade])
FROM tblStudents
ORDER BY Val([grade]);

答案 1 :(得分:6)

使用DISTINCT关键字与SELECT子句中所有列的分组效果相同:

SELECT grade
  FROM tblStudents
 GROUP 
    BY grade
 ORDER 
    BY VAL(grade), grade;

注意我必须删除grade IS NULL的行,否则我收到错误,“条件表达式中的数据类型不匹配。”

答案 2 :(得分:2)

使用此:

SELECT DISTINCT Val([grade])
FROM tblStudents
ORDER BY Val([grade]);

非数字记录显示为0.

但下面显示了数字和非数字记录:

SELECT grade
  FROM tblStudents
 GROUP BY grade
 ORDER BY VAL(grade), grade;