0

我需要一个好的表达来正确选择字段的一部分。例如,该字段的类型可以是:“google_organic”或“google_campaign_HereGoesMyCode”。我感兴趣的部分是“有机”或“活动”,没有任何其他添加。到目前为止,我选择了这个:

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

但是在“campaign”的情况下,我选择了整个事情......我不知道如何管理第二个下划线的存在或不存在......

谢谢你

4

1 回答 1

0

一种方法是使用下面的 SQL 创建一个 lastIndex 类型的搜索,并将结果用作长度:
len(Referer) – (charindex('_', reverse(Referer))-1)

然后,您可以按如下方式重写您的查询,尽管您需要第一个 charIndex 的结果,所以这相当密集:
substring(Referer, charIndex('_',Referer)+1, (len(Referer) – (charindex('_', reverse(Referer))-1) - (charIndex('_',Referer)+1))-1 )

我意识到这现在只有在你有 2 个下划线时才有效。但是您可以根据 CASE/WHEN 语句过滤要运行的查询。

于 2013-03-05T17:31:43.827 回答