demo: db <> fiddle
SELECT DISTINCT ON (lower(city))
city
FROM
cities
DISTINCT ON
берет произвольный столбец и выдает первый из дубликатов.В этом случае столбец создается внутри со всеми строчными буквами.Затем берется первая запись, но только исходный столбец.
ПРИМЕЧАНИЕ У вас нет специального заказа.Будет принят случайный порядок (например, как данные хранятся внутри).Чтобы получить значение в верхнем регистре, вы должны написать:
SELECT DISTINCT ON (lower(city))
city
FROM
cities
ORDER BY lower(city), city DESC
demo: db <> fiddle
ORDER BY lower(city)
необходим, так как DISTINCT ON
необходимданные столбцы должны быть первыми.После этого вы можете заказать любой другой столбец.ORDER BY column DESC
перемещает верхний регистр.