I am trying to build out an way to return all of the surrounding zip codes for a particular one in a single field, so that I can use it for additional queries.
I found this on the Salesforce Marketing Cloud Dev site for SQL:
SELECT zip
, city
, ROUND(6378.137 * ACOS(
CASE
WHEN (SIN(RADIANS((SELECT latitude FROM [ZipCode] where zip = 33308))) * SIN(RADIANS(geo.Latitude))) + (COS(RADIANS((SELECT latitude FROM [ZipCode] where zip = 33308))) * COS(RADIANS(geo.Latitude)) * COS(RADIANS(geo.Longitude) - RADIANS((SELECT longitude FROM [ZipCode] where zip = 33308)))) > 1 THEN 1
WHEN (SIN(RADIANS((SELECT latitude FROM [ZipCode] where zip = 33308))) * SIN(RADIANS(geo.Latitude))) + (COS(RADIANS((SELECT latitude FROM [ZipCode] where zip = 33308))) * COS(RADIANS(geo.Latitude)) * COS(RADIANS(geo.Longitude) - RADIANS((SELECT longitude FROM [ZipCode] where zip = 33308)))) < -1 THEN -1
ELSE (SIN(RADIANS((SELECT latitude FROM [ZipCode] where zip = 33308))) * SIN(RADIANS(geo.Latitude))) + (COS(RADIANS((SELECT latitude FROM [ZipCode] where zip = 33308))) * COS(RADIANS(geo.Latitude)) * COS(RADIANS(geo.Longitude) - RADIANS((SELECT longitude FROM [ZipCode] where zip = 33308))))
END
),0
) AS Distance
FROM [ZipCode] AS geo
WHERE
ROUND(6378.137 * ACOS(
CASE
WHEN (SIN(RADIANS((SELECT latitude FROM [ZipCode] where zip = 33308))) * SIN(RADIANS(geo.Latitude))) + (COS(RADIANS((SELECT latitude FROM [ZipCode] where zip = 33308))) * COS(RADIANS(geo.Latitude)) * COS(RADIANS(geo.Longitude) - RADIANS((SELECT longitude FROM [ZipCode] where zip = 33308)))) > 1 THEN 1
WHEN (SIN(RADIANS((SELECT latitude FROM [ZipCode] where zip = 33308))) * SIN(RADIANS(geo.Latitude))) + (COS(RADIANS((SELECT latitude FROM [ZipCode] where zip = 33308))) * COS(RADIANS(geo.Latitude)) * COS(RADIANS(geo.Longitude) - RADIANS((SELECT longitude FROM [ZipCode] where zip = 33308)))) < -1 THEN -1
ELSE (SIN(RADIANS((SELECT latitude FROM [ZipCode] where zip = 33308))) * SIN(RADIANS(geo.Latitude))) + (COS(RADIANS((SELECT latitude FROM [ZipCode] where zip = 33308))) * COS(RADIANS(geo.Latitude)) * COS(RADIANS(geo.Longitude) - RADIANS((SELECT longitude FROM [ZipCode] where zip = 33308))))
END
),0
) <= 32.1869
What it is doing is sending each of the 90 surrounding zips are populated on their own row. What I am looking for is to put the zips together. See the examples below:
Current
12345
23456
34567
45678
56789
What I want is:
12345, 23456, 34567, 45678, 56789
Thanks for any help anyone can give!
where x.ranking = 1
at the end and it'll return all zips within the radius range.