2016-03-15 74 views
0

我在使用條件拆分很難。SSIS條件拆分默認輸出

我有2個條件:

1 | Status column completed |(Status) == "Completed"

2 |Default | (Status) == "Completed" && (Status) == "Incomplete"

我的第一順序

,在狀態欄,所有已完成的狀態會繼續我的臨時表和我的第二個訂單,無論狀態是完成還是不完整,它將轉到另一個表作爲我的原始表。截至目前,使用該條件我的第二個訂單不起作用。所有完成的狀態是唯一的人去正確的表。 請幫忙,謝謝。

回答

4

您的Default輸出上的表達式會過濾掉所有行,因爲Status對於給定行不能同時爲Completed和Incomplete。然而,更重要的是,條件拆分僅拆分行,如果要將整行行向下發送一個路徑,並將子集發送到另一個路徑,則需要在條件拆分前的步驟中放置一個Multicast,並且將多播的一個輸出發送到您的條件分割,並將一個輸出發送到您希望所有記錄去的任何位置。

多播 允許您將多組記錄全部發送到多個路徑(多個目標)。

條件拆分根據您定義的條件拆分記錄集,將記錄的子集向多條路徑發送。任何未被捕獲的記錄都將通過內置的默認輸出進行路由。就像CASE表達式一樣,進入分割的每一行只能進入一個輸出。

您的數據流看起來像這樣。

enter image description here

+0

所以你的意思是,有條件拆分後我需要插入組播功能,然後目標? –

+0

在條件拆分之前,多播將全部行集發送到多個下游步驟。因此,使用「Completed」條件將組播傳送至條件分割,並從同一組播傳送到您希望發送所有記錄而不管狀態的位置。 –

+0

@billinkc很好的編輯,謝謝你。 –