Вот обычный способ манипуляции со строками. Я предполагаю, что строка всегда будет содержать две десятичные точки. (Вам нужна только последняя строка, я «нарисовал», как я ее построил.)
DECLARE @Foo varchar(100)
SET @Foo = 'www.topshop.com '
SET @Foo = 'www.shopbop.co.uk '
SET @Foo = 'http://www.magickingdom.net '
SET @Foo = 'http://www.asos.co.uk '
PRINT @Foo
-- Start of string to extract
PRINT charindex('.', @Foo) + 1
-- Extracted string, part 1
PRINT substring(@foo, charindex('.', @Foo) + 1, 100)
-- In extracted string, where do we want to stop
PRINT charindex('.', substring(@foo, charindex('.', @Foo) + 1, 100)) - 1
-- Extracted string
PRINT left(substring(@foo, charindex('.', @Foo) + 1, 100), charindex('.', substring(@foo, charindex('.', @Foo) + 1, 100)) - 1)
Это ясно демонстрирует, что манипуляции со строками SQL могут стать очень уродливыми (если не совсем глупыми), и что @Ian Jacobs прав, вам следует использовать язык, более подходящий для этой задачи.