使用RND()的数据类型不匹配

chr*_*ris 3 sql random ms-access

我需要一些SQL查询的帮助.该查询旨在从表中返回75个随机记录.这是查询:

SELECT TOP 75 a.Number, a.Location, a.Manufacturer
FROM a
WHERE (((a.Location) = 'Columbus'))
ORDER BY Rnd(Int(Now()*Number)-Now()*Number);
Run Code Online (Sandbox Code Playgroud)

如果我在WHERE子句中使用不同的城市名称,则此查询可以正常工作.例如,如果我将WHERE子句更改WHERE (((a.Location) = 'Toledo'))为查询工作.但是,如果城市名称为"Columbus",则会出现数据类型不匹配错误.

Lit*_*les 8

您需要验证Number列中的值a.Location = 'Columbus'...我怀疑您在其中一个Number列中有一个非数字值,这会导致类型不匹配错误.

您可以使用它来缩小范围:

SELECT *
FROM a
WHERE NOT ISNUMERIC(a.Number) and a.Location = 'Columbus'
Run Code Online (Sandbox Code Playgroud)

或者更好的是,排除位置以查找任何可能的错误值:

SELECT *
FROM a
WHERE NOT ISNUMERIC(a.Number) 
Run Code Online (Sandbox Code Playgroud)