將空白視為具有所有可能值的查詢

將空白視為具有所有可能值的查詢

假設我有以下表格:

字段_1 字段_2 字段_3
A D
A C
A C F
Z G
Z H
Z C
字段_1 字段_2
A C
Z

如果我將它們拉入Access 中的「查詢設計」窗口,並將兩個具有通用名稱的欄位連接起來,我可以輕鬆地拉出一個查詢,該查詢顯示「AC」和「ZB」記錄(總共4筆記錄)。

這是我想要完成的任務:假設在第二個表格中的第二筆記錄中,Field_2 為 Null/Blank。我想找到一種方法將此 Null 字段解釋為全部可能的值(考慮其他連接)。現在,如果我刪除該欄位中的值並執行相同的查詢,顯然我只能看到「A」記錄。可以預見的是,將其作為任一方向的外部連接都不會給出我想要的結果。

我想,另一種思考方式是,我希望它更像是具有「與」和「或」邏輯的過濾器。這在 Access 中可能/容易做到嗎?我嘗試使用 Excel 中的高級篩選器來執行此操作會更好嗎?

這個例子顯然被簡化了:在我的行業中,它可能要複雜得多。高級過濾器對於像這樣的小東西來說可以很好地工作,但是我的“不完整數據”表(此處由Table_2 表示)可能有數萬條記錄,而我需要用來擴展它的“完整「資料集是數百筆數千筆記錄(至少如果我要提取一個將所有重要資料以表格格式顯示的查詢)。

如果這裡有人以前遇到過這個問題並且有現成的解決方案,我會很高興。我感謝任何和所有的幫助。

答案1

您需要編輯您的連接,大概是這樣的:

SELECT Table1.*
FROM Table1 
INNER JOIN Table2 
ON Table2.Field_1 = Table1.Field_1
AND Table2.Field_2 = Table1.Field_2

對於這樣的事情:

SELECT Table1.*
FROM Table1 
INNER JOIN Table2 
ON Table2.Field_1 = Table1.Field_1
AND IIF(Table2.Field_2 IS NULL,Table1.Field_2,Table2.Field_2) = Table1.Field_2

如果這不完全正確,請原諒我。我認為你不能COALESCE在 Access 中使用,但我相信應該用它來IIF代替。不幸的是我已經很多年沒有使用Access了。

無論如何,原則是您需要編輯聯接以表示「如果表 2 中的欄位 2 為空,則使用表 1 中的欄位 2 取代它」。這具有符合 Table1 中每一行的效果。

相關內容