解決它在SQL
如果這是我的項目,我寧願在產生數據的SQL查詢解決這個問題。由於我看不到您的SQL查詢,並且在某些情況下您可能無法更改查詢,所以我提供了我的hacky後SQL解決方案。
哈克解決方案
爲簡單起見,我將使用DATA_SET_STRING
來表示你的代碼:RTRIM(LTRIM(Join(LookupSet(Fields!Fund_Family.Value & Fields!Portfolio_Company_Name.Value,Fields!Fund_Family.Value & Fields!Portfolio_Company_Name.Value,Fields!Security_Type.Value, "DataSet1")
像這樣的東西會從列表中刪除空字符串名稱:=REPLACE(DATA_SET_STRING,"/"), "/ /", "/").Remove(1,1)))
空字符串&空白空格
如果你想刪除空白字符(「」)以及空字符串(「」),那麼我會首先將空格字符轉換爲空字符串,然後刪除空字符串。嵌套0語句可以做到這一點:在連續
的最大限制這種(比是無法逾越的困難閱讀和維護等)
=REPLACE(REPLACE(DATA_SET_STRING,"/"), " ", " "), "/ /", "/").Remove(1,1)))
多個空白的是,它只會刪除數量有限連續的空白名稱。例如,如果連續有三個空白名稱,則原始函數DATA_SET_STRING
將返回「名稱1////名稱2」。我的其他REPLACE
函數將導致最後一串「名稱1//名稱2」。爲了處理連續的多個空格,您必須嵌套更多REPLACE
函數。
事情是這樣的:
=REPLACE(REPLACE(REPLACE(DATA_SET_STRING,"/"), " ", " "), "/ /", "/"), "/ /", "/").Remove(1,1)))
雖然可以解決特定情況與此REPLACE
方法,它永遠是弱勢羣體更多的空格連續超過您的預期。
警告
同樣,我寧願通過提供過濾掉空,空字符串名稱查詢解決這個問題。不過,如果你打算使用一個哈克方法(我知道哈克代碼可以讓你擺脫困境的),這裏所提供的解決方案的弱點:
- 難以閱讀
- 難以維持
- 容易受到數據的變化(連續太多空字符串)
記住負責任地編碼。