Вероятно, это:
SELECT 'startdate' as datekind, startdate
FROM table
UNION
SELECT 'enddate', enddate
FROM table
Тип является необязательным, но я добавил его, чтобы продемонстрировать, как вы будете знать, была ли дата началом или концом. Вы можете добавить другие столбцы, такие как ID, таким же образом
Если вы не хотите разбивать дубликаты, добавьте слово ALL после UNION
ПРИМЕЧАНИЕ. - Наличие столбца вида повлияет надата считается дубликатом другой строки или нет. Этот запрос может по-прежнему давать повторяющиеся даты, если один является началом, а другой - концом. Если это недопустимо, удалите столбец с датой (и примите, что вы не будете знать, что это такое)
Если мы создаем уникальный список дат и самый низкий связанный элемент:
SELECT x.d, min(x.item) as i
FROM(
SELECT startdate as d, item FROM table
UNION ALL
SELECT enddate, item FROM table
) x
GROUP BY x.d