В настоящее время у меня возникают проблемы с запросом набора данных, содержащего несколько записей об уникальных клиентах. Каждая строка имеет дату начала и дату окончания, а самая последняя запись помечена как самая актуальная, а дата окончания - как 31 декабря 1999 года. Я пытаюсь написать запрос, чтобы я мог вернуть все записи, которые относятся к определенной дате, например к концу месяца (31.10.2018). Моя цель в Oracle SQL Developer - ввести все записи / данные в день 31.10.2017, чтобы строки со знаком * были единственными, которые я хотел бы вернуть. Конечный результат - сделать это с гораздо большим файлом и увидеть весь год в конце месяца, где находился каждый человек, исходя из даты окончания месяца в течение 1 года.



Можете ли вы уточнить, какой результат вы ожидаете? Я вижу, что вы пытаетесь реализовать здесь временную функциональность. Пожалуйста, проверьте эту ссылку, если это соответствует вашим целям. Оракул временный . Что касается выделенных записей, вы можете использовать простое условие в предложении where, подобное этому, и отформатировать часть даты по мере необходимости:
select * from emp where endd=to_date('9999/12/31','yyyy/mm/dd')
Я думаю, вы хотите перечислить все записи, актуальные на указанную дату. Для этого я бы просто использовал условие BETWEEN:
select * from mytable
where date'2017-31-10' between start and end
Было неясно, каковы были ваши требования, потому что ваши данные выборки не включают примеры, которые охватывают крайние случаи. Технически ответ Брехнаа правильный, потому что он дает результаты, которые вы отметили как желаемые. Мой ответ был правильным, потому что он соответствует вашему предполагаемому значению. Вы должны были включить хотя бы одну примерную запись, где дата окончания не была 31 декабря 1999 года, но она должна была быть включена в набор результатов.