如何用SQL把这三个字符串变成一个?

Lucenedonet 2011-09-14 03:17:32
http://75ke.com/
http://www.75ke.com/
http://www.75ke.com/?err

数据库中有这样的值,想分组 按照http://www.75ke.com/进行分组,如何写?

假设字段名为url
...全文
113 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-09-14
  • 打赏
  • 举报
回复
判断一下前4为包含www.就可以了

case when 来判断
dawugui 2011-09-14
  • 打赏
  • 举报
回复
那你自己考虑周全,没有www开头的,自己补上.

case when left(col,4) <> 'www.' then 'www.' + col else col end
Lucenedonet 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dawugui 的回复:]

SQL code
create table tb(col varchar(50))
insert into tb values('http://75ke.com/')
insert into tb values('http://www.75ke.com/')
insert into tb values('http://www.75ke.com/?err')
go

select url = '……
[/Quote]
不符合要求。

这不是一个特定的网址,而是一个例子。
就是说有的没有www,有的除了首页还有其他子频道。分组的时候统一按照首页进行分组。这个意思。

baidu.com
www.baidu.com
www.baidu.com/index.html

都按照第二个形式分组。
Lucenedonet 2011-09-14
  • 打赏
  • 举报
回复
SQL SERVER 2008
Lucenedonet 2011-09-14
  • 打赏
  • 举报
回复
消息 537,级别 16,状态 2,第 1 行
传递给 LEFT 或 SUBSTRING 函数的长度参数无效。

select 'http://' + left(substring(referer,8,len(referer)) , charindex('/',substring(referer,8,len(referer)))-1) + '/' , count(1) from AdWebClick
group by 'http://' + left(substring(referer,8,len(referer)) , charindex('/',substring(referer,8,len(referer)))-1) + '/'
快溜 2011-09-14
  • 打赏
  • 举报
回复
select count(*) from tb group by left(url,16)
dawugui 2011-09-14
  • 打赏
  • 举报
回复
create table tb(col varchar(50))
insert into tb values('http://75ke.com/')
insert into tb values('http://www.75ke.com/')
insert into tb values('http://www.75ke.com/?err')
go

select url = 'http://' + left(substring(col,8,len(col)) , charindex('/',substring(col,8,len(col)))-1) + '/' , cnt = count(1) from tb
group by 'http://' + left(substring(col,8,len(col)) , charindex('/',substring(col,8,len(col)))-1) + '/'


drop table tb

/*
url cnt
---------------------------------------------------------- -----------
http://75ke.com/ 1
http://www.75ke.com/ 2

(所影响的行数为 2 行)
*/
dawugui 2011-09-14
  • 打赏
  • 举报
回复
select 'http://' + left(substring(col,8,len(col)) , charindex('/',substring(col,8,len(col)))-1) + '/' , count(1) from tb 
group by 'http://' + left(substring(col,8,len(col)) , charindex('/',substring(col,8,len(col)))-1) + '/'

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧