在名为" server_url"的列中有链接:
在.com之后总会有一个" /"当下。
我想只获得域名作为输出:www.abc.com,www.abcd.com
必须从头开始删除http://以及第三个" \"之后的任何内容。
试过:
SUBSTRING( server_url, (charindex(':',server_url)+3), (charindex('/',server_url,10)))
我删除了http。但它并没有在第三个'之后删除该部分。
请建议执行相同的功能。
答案 0 :(得分:2)
第三个参数是length,所以你需要在开始时删除被忽略部分的长度,所以就像(小心栅栏帖子):
SUBSTRING( server_url, (charindex(':',server_url)+3), (charindex('/',server_url,10) - (charindex(':',server_url)+3)))
答案 1 :(得分:1)
假设SQL Server,这似乎有效:
declare @t table (server_url varchar(max) not null)
insert into @t(server_url) values
('http://www.abc.com/xyz/cv'),
('https://www.abc.com/lmn/rq'),
('https://www.abcd.com/kl')
;With Positions as (
select server_url,
CASE WHEN SUBSTRING(server_url,5,1)='s' THEN 8 ELSE 7 END as StartPosition,
CHARINDEX('/',server_url,9) as EndPosition
from @t
)
select SUBSTRING(server_url,StartPosition,EndPosition-StartPosition)
from Positions
我可以通过多次重复StartPosition
CASE
表达式来实现没有公用表表达式,但我觉得这更清晰。
答案 2 :(得分:0)
SELECT CONCAT(
SUBSTRING_INDEX(
SUBSTRING_INDEX(server_url', '.com/', 1), '//', -1
), '.com'
)