SQL组按字符串的一部分

前端之家收集整理的这篇文章主要介绍了SQL组按字符串的一部分前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的表中有以下数据:
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

Live example at SQL Fiddle.

原文链接:https://www.f2er.com/mssql/80958.html

猜你在找的MsSQL相关文章