我的表中有以下数据:
URL TIME DATE -------------------------------------- /x 11 2013-08-01 /x 11 2013-08-01 /pl/ 11 2013-08-01 /pl/ 11 2013-08-03 /pl/XXX/ 11 2013-08-01 /pl/XXX/ 11 2013-08-04 /pl/XXX/1 11 2013-08-01 /pl/XXX/2 11 2013-08-01 /pl/YYY/ 11 2013-08-01 /pl/YYY/1 11 2013-08-01 /pl/YYY/2 11 2013-08-04 /pl/YYY/3 11 2013-08-04
有没有办法通过URL分组到sql Server中的第三个斜杠(/)?不幸的是,存在少于三个的记录.
解决方法
计算字符串中斜杠数量的一个诀窍是:
len(url) - len(replace(url,'/',''))
然后,您可以使用charindex三次查找第三个斜杠的位置:
select BeforeThirdSlash,max([date]) from ( select case when len(url) - len(replace(url,'')) < 3 then url else substring(url,1,charindex('/',url,url)+1)+1)-1) end as BeforeThirdSlash,* from @t ) as SubQueryAlias group by BeforeThirdSlash