Use the right tool(s) for the job. Latitude & Longitude are not strings - they should be floats. SQL Server 2005+ has geospatial features baked in and if you use the appropriate data types, it can perform your distance calculations for you. By default, distance will be calculated in meters.
I tried to use SQLFiddle for this but it didn't like it.
create table #locations (
Locationname varchar(20) not null unique,
LocationGeo geography not null
);
insert into #locations values (
'Seattle',
geography::STGeomFromText('POINT(-122.33365 47.612033)',4326)
);
insert into #locations values (
'San Francisco',
geography::STGeomFromText('POINT(-122.41667 37.78333)',4326)
);
insert into #locations values (
'London',
geography::STGeomFromText('POINT(0 0)',4326)
);
declare @p1 geography;
SELECT @p1 = Locationgeo from #locations where locationname='London';
SELECT locationname, @p1.STDistance(locationgeo)/1000 as [Distance from London] from #locations order by [Distance from London];