访问查询不适用于DISTINCT和Val()

时间:2015-09-15 11:24:24

标签: sql ms-access distinct

我有一个查询

SELECT col1, Val(col2)
FROM table1;

其中col2是文本数据类型。

我想在这里使用DISTINCT,

SELECT DISTINCT col1, Val(col2)
FROM table1;

但是当我添加它时,我有一个错误 “Data type mismatch in criteria expression”。

当我尝试对column2进行排序时(第一次查询),我遇到了同样的错误。为什么呢?

2 个答案:

答案 0 :(得分:3)

Val函数不处理NULL值。将第二列更改为Val(nz(col2,“”))

答案 1 :(得分:1)

我回答了我的问题。 由于某些行在col2中具有NULL值,并且SQL无法比较两个NULL以查找不同的行,因此应添加WHERE col2 IS NOT NULL

SELECT DISTINCT col1, Val(col2)
FROM table1
WHERE col2 IS NOT NULL;