使用“ LIKE”运算符的嵌套MS Access SQL查询

时间:2018-10-08 09:02:34

标签: sql ms-access nested

我得到了很多文件,实际上是excel文件中的“文档索引”。

我试图确定我们是否确实收到了索引中列出的所有文件。

我的问题是,并非所有电子文件名都正确。

在某些情况下,电子文件名已添加描述或修订,因此无法直接查找(JOIN),我想使用嵌套的LIKE语句:

问题的一个示例是我无法匹配以下对象:
tblINDEX.idxFilename-tblFilename.dirFilename
RR-ASF-00-0111-000075-RR-ASF-00-0111-000075Construction Details.pdf

以下查询(JOIN)仅找到直接匹配项:

SELECT tblINDEX.idxFilename, tblFilename.dirFilename
FROM tblINDEX LEFT JOIN tblFilename ON tblINDEX.idxFilename = dirFilename
WHERE tblFilename.filename Is Null Or tblFilename.filename Is Not Null;

下面的查询(LIKE)不显示空格/空值(缺少文件名)。

SELECT tblINDEX.idxFilename, tblFilename.dirFilename
FROM tblFilename, tblINDEX
WHERE tblFilename.dirFilename Like idxFilename & '*' Or tblFilename.dirFilename Is Null;

我的嵌套“ SELECT”在嵌套的SELECT语句中返回语法错误。

SELECT tblINDEX.idxFilename
    ,(
        SELECT tblFilename.filename
        FROM tblFilename
        WHERE tblFilename.filename Like tblINDEX.idxFilename & '*'
        ) AS 'idxFilename_FN'    
    FROM tblINDEX
;

我知道这种嵌套查询方法可以在T-SQL中使用,但是很难在MS Access中使用它。

1 个答案:

答案 0 :(得分:1)

没有尝试过,但是呢?

SELECT tblINDEX.idxFilename, tblFilename.dirFilename
FROM tblINDEX LEFT JOIN tblFilename ON tblFilename.filename Like tblINDEX.idxFilename & '*'  
WHERE....

必须在SQL视图中完成操作,这将阻止切换回设计视图,但是应该可以。