2013-03-05 80 views
0

我需要一個好的表達式才能正確選擇字段的各個部分。 例如,該字段可以是「google_organic」或「google_campaign_HereGoesMyCode」類型。我感興趣的部分是「有機」或「運動」,沒有任何其他添加。 到目前爲止,我選擇與此:SQL Server子字符串

substring(Referer, charIndex('_',Referer)+1, len(Referer)) 

但在「運動」的情況下,我選擇了整個事情......我不知道如何管理存在或第二個下劃線的不存在。 ..

謝謝

回答

0

一種方法是使用下面的SQL基本上創建lastIndex的類型的搜索,並使用結果作爲長度:
len(Referer) – (charindex('_', reverse(Referer))-1)

然後,您可以REW儀式查詢如下,雖然你需要第一的charIndex的結果,所以這是相當激烈:
substring(Referer, charIndex('_',Referer)+1, (len(Referer) – (charindex('_', reverse(Referer))-1) - (charIndex('_',Referer)+1))-1)

我意識到,如果你有2個下劃線,這將現在只有工作。但是您可以根據CASE/WHEN語句過濾要運行的查詢。