• There's also no need to write this as a CROSS JOIN... It's actually what Jeff would refer to as a "triangular join".

    SELECT

    CityName

    INTO #City

    FROM (VALUES ('Jax'),('Orlando'),('Miami'),('Tally'),('Appalach'),('Lake City'),('Panama City')) City (CityName)

    SELECT

    c1.CityName AS CityName_1,

    c2.CityName AS CityName_2

    FROM

    #City c1

    JOIN #City c2

    ON c1.CityName < c2.CityName

    ORDER BY-- Not needed just makes it easier to verify results

    c1.CityName,

    c2.CityName