2017-06-13 55 views
1

我創建了一個表中包含多個業務排除名稱,用於收到每週數據文件的目的我希望針對排除列表,然後我將標記爲被排除在外。如果這是我想要排除的確切名稱,我可以實現此目的,但我想針對每個業務排除名稱對我的新數據運行通配符。SQL - 使用通配符排除其他表中的列表

例如: 我在排除表中有一個商業排除名稱是「Marks and Spencers」,但我在我的新數據文件中有一個名爲「Marks and Spencers Manchester」的帳戶,我想排除這樣的帳戶因爲不匹配,所以我想要做一些可能使用Like函數的東西,並且在這個例子中使用類似「Where ExclusionName like」的標記和Spencer%「」 我明顯可以實現使用上面的邏輯,但是我想要去通過新文件中的所有數據遍歷排除列表,標記是否要排除該帳戶。

這是否必須使用遊標來實現?以及更大的數據文件和相當大的排除列表的效率如何?

任何意見,將不勝感激。

感謝

DC

+0

你可以將數據導入到表中嗎? –

+0

您正在使用哪些DBMS? –

回答

0

我的建議是擴大你排除表,這是一個「做什麼」的表。每個記錄至少應包括一個企業名稱和一個「做什麼領域」。這些值將指示您是應該在每週導入中包含還是排除記錄。

當您獲得每週導入時,將所有記錄放入暫存表中。然後運行一個報告,顯示不在「要做什麼」表中的所有名稱。對每條記錄做出決定並使用適當的值將其添加到表格中。然後繼續進行與每週導入相關的任何操作。

這可能看起來很乏味,但你會得到更好的結果。使用馬克斯和斯賓塞的例子,除了城市的最後部分,你可能會得到一些記錄,包括撇號,拼寫錯誤,開始時的城市,等等。

相關問題