Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 显示包含"#“错误”;在查询输出中_Sql_Join_Ms Access 2007 - Fatal编程技术网

Sql 显示包含"#“错误”;在查询输出中

Sql 显示包含"#“错误”;在查询输出中,sql,join,ms-access-2007,Sql,Join,Ms Access 2007,我有一个正确的联接查询(联接一个表和另一个查询输出)。我在某些行中显示“#Error”。有没有办法只显示给出“#Error”的行 我的问题是: SELECT Table1.Number1, Table2.Number2 FROM Table2 RIGHT JOIN Table1 ON Table2.Number2 = Table1.Number1; 样本数据: Expr1 Expr2 2346 2346 2347 2347 2348 #Error 2349 2349

我有一个正确的联接查询(联接一个表和另一个查询输出)。我在某些行中显示“#Error”。有没有办法只显示给出“#Error”的行

我的问题是:

SELECT Table1.Number1, Table2.Number2
FROM Table2 RIGHT JOIN Table1 ON Table2.Number2 = Table1.Number1;
样本数据:

Expr1   Expr2
2346    2346
2347    2347
2348    #Error
2349    2349
2350    2350
2351    2351
子查询:

SELECT Val(Right([String2],Len([String2])-8)) AS Number2
FROM Table3;

提前感谢

只需在末尾添加WHERE子句。应该行得通。如果有多个列中可能出现#错误行,请使用带有or(或| s)的WHERE子句。如果你能更清楚地知道哪些列中有#错误,我可以给你一个代码块,但是你自己处理应该很容易

编辑:更正:

SELECT Table1.Number1
FROM Table1
WHERE Table1.Number1 NOT IN (
    SELECT Table2.Number2 FROM Table2
)

您之所以会出现错误,是因为您强制表1显示,即使在表2中没有与之匹配的内容。这将为您提供孤立项。

请显示一些导致#错误的数据。@rontornambe用示例数据更新了它。也给我们显示子查询怎么样?@rontornambe用子查询对象更新了它,就像发生#错误一样,因为您的子查询正在执行两个偶尔失败的操作。如果字符串长度不超过8个字符,“Right”可能会失败。如果子字符串不是数字,“Val”可能会失败。如果只想查看#错误行,则查询可能导致这些情况之一的项。如果你不想出错,那就改为做一个内部连接。那怎么解决这个错误呢?他没有要求解决问题。他要求展示它们。为什么你不同意我回答OP提出的问题?这个答案没有用。询问者在where条款中需要什么?与问题一样,答案需要有一定的特殊性。考虑到用户的问题,我假设#错误出现在特定的列中。只显示相同行的列表有什么意义?考虑到我没有专栏可供使用,我不能自己写WHERE子句,是吗?@BenBarden我没有投反对票,我只是对你最初的答案发表了评论。