2017-06-02 42 views
0

我正在使用行過濾器過濾掉長度超過指定長度的列。在過濾條件下,沒有檢查行長度的條件。如何在水壺中按行長度過濾行

所以解決方法是使用:

Field1 REGEXP [^.{0,80}$] 
OR 
Field1 IS NULL 

Field2 REGEXP [^.{0,120}$] 
OR 
Field2 IS NULL 

長度檢查是一種非常普遍的要求。有沒有一個功能/更簡單的方法來做到這一點,我失蹤了?

回答

2

使用數據驗證步驟:

爲要檢查並設置「最大字符串長度」爲創建的每個驗證每列一個新的驗證。

可以使用「步驟錯誤處理」重定向錯誤行一跳: enter image description here

默認情況下,這些行具有相同的結構和值作爲輸入行,但你也可以包括其他信息,如名稱錯誤的列或錯誤描述。

或者,您可以在使用計算器步驟進行篩選之前計算字符串長度,但如果您有多個要檢查的列,則可能會創建大量附加列。

而且,當然,您可以隨時在用戶定義的Java類或已修改的Java腳本值中執行此類檢查。

+0

數據驗證程序停止轉換。我怎樣才能讓它忽略這些行?是否有丟棄所有內容的輸出類型? –

+0

除了「主要輸出步驟」跳(我已添加屏幕截圖作爲示例)之外,您可能還需要在驗證器步驟之後的「步驟的錯誤處理」躍點。 – user4637357

1

假設你正在談論字符串,你可以使用計算器步驟,但有點難以找到計算「返回字符串A的長度」。這將爲您提供「篩選行」步驟的值。

+1

不難找到,如果你使用單詞'length'作爲過濾器。花了太長時間才發現這個功能。 – marabu