Sql 访问查询没有';t与DISTINCT和Val()一起工作

Sql 访问查询没有';t与DISTINCT和Val()一起工作,sql,ms-access,distinct,Sql,Ms Access,Distinct,我有一个问题 SELECT col1, Val(col2) FROM table1; 其中col2是文本数据类型 我想在这里使用DISTINCT SELECT DISTINCT col1, Val(col2) FROM table1; 但是当我添加它时,我有一个错误 “条件表达式中的数据类型不匹配。” 当我尝试对第2列进行排序(对于第一个查询)时,也会出现同样的错误。为什么?我在回答我的问题。 因为有些行在col2中有NULL值,而SQL无法比较两个NULL来查找不同的行,所以应该在col2

我有一个问题

SELECT col1, Val(col2)
FROM table1;
其中col2是文本数据类型

我想在这里使用DISTINCT

SELECT DISTINCT col1, Val(col2)
FROM table1;
但是当我添加它时,我有一个错误 “
条件表达式中的数据类型不匹配。”

当我尝试对第2列进行排序(对于第一个查询)时,也会出现同样的错误。为什么?我在回答我的问题。 因为有些行在col2中有NULL值,而SQL无法比较两个NULL来查找不同的行,所以应该在col2不为NULL的地方添加

SELECT DISTINCT col1, Val(col2)
FROM table1
WHERE col2 IS NOT NULL;
我在回答我的问题。 因为有些行在col2中有NULL值,而SQL无法比较两个NULL来查找不同的行,所以应该在col2不为NULL的地方添加

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

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

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

编辑您的问题并显示不起作用的查询。col1是什么数据类型?您想对哪个列使用DISTINCT?这可能有助于Gordon:我写道,使用Distinct的查询不起作用。为什么要呕吐?我编辑并添加了我的问题。编辑您的问题并显示不起作用的查询。col1是什么数据类型?您想对哪个列使用DISTINCT?这可能有助于Gordon:我写道,使用Distinct的查询不起作用。为什么要呕吐?我编辑了我的问题并添加了它。