Since you want first and last, I’d probably just use a union and top 1. makes it clear as to what you’re after and easy to maintain.
And since you can use alias in order by… I’d alias len(city)
SELECT TOP 1
city, len(city) LenCity
FROM
station
ORDER BY
LenCity ASC
UNION ALL
SELECT TOP 1
city, Len(City) lenCity
FROM
station
ORDER BY
LenCity DESC
solved Hackerrank SQL challenge