thx Pentium10 - вы заставили меня присоединиться к stackoverflow :) - это мой портирование на msaccess - думаю, что он будет работать в любой версии:
SELECT date_value
FROM (SELECT a.espr1+(10*b.espr1)+(100*c.espr1) AS integer_value,
dateadd("d",integer_value,dateserial([start_year], [start_month], [start_day])) as date_value
FROM (select * from
(
select top 1 "0" as espr1 from MSysObjects
union all
select top 1 "1" as espr2 from MSysObjects
union all
select top 1 "2" as espr3 from MSysObjects
union all
select top 1 "3" as espr4 from MSysObjects
union all
select top 1 "4" as espr5 from MSysObjects
union all
select top 1 "5" as espr6 from MSysObjects
union all
select top 1 "6" as espr7 from MSysObjects
union all
select top 1 "7" as espr8 from MSysObjects
union all
select top 1 "8" as espr9 from MSysObjects
union all
select top 1 "9" as espr9 from MSysObjects
) as a,
(
select top 1 "0" as espr1 from MSysObjects
union all
select top 1 "1" as espr2 from MSysObjects
union all
select top 1 "2" as espr3 from MSysObjects
union all
select top 1 "3" as espr4 from MSysObjects
union all
select top 1 "4" as espr5 from MSysObjects
union all
select top 1 "5" as espr6 from MSysObjects
union all
select top 1 "6" as espr7 from MSysObjects
union all
select top 1 "7" as espr8 from MSysObjects
union all
select top 1 "8" as espr9 from MSysObjects
union all
select top 1 "9" as espr9 from MSysObjects
) as b,
(
select top 1 "0" as espr1 from MSysObjects
union all
select top 1 "1" as espr2 from MSysObjects
union all
select top 1 "2" as espr3 from MSysObjects
union all
select top 1 "3" as espr4 from MSysObjects
union all
select top 1 "4" as espr5 from MSysObjects
union all
select top 1 "5" as espr6 from MSysObjects
union all
select top 1 "6" as espr7 from MSysObjects
union all
select top 1 "7" as espr8 from MSysObjects
union all
select top 1 "8" as espr9 from MSysObjects
union all
select top 1 "9" as espr9 from MSysObjects
) as c
) as d)
WHERE date_value
between dateserial([start_year], [start_month], [start_day])
and dateserial([end_year], [end_month], [end_day]);
, на который ссылаются MSysObjects, просто потому, что для доступа нужен стол countin 'по крайней мере 1 запись, в условии from - любая таблица с не менее чем 1 записью.
Список
- это упорядоченная последовательность элементов тогда как Set
- это отдельный неупорядоченный список элементов (спасибо, Quinn Taylor ).
Упорядоченная коллекция (также известная как последовательность). Пользователь этого интерфейса имеет точный контроль над тем, где в список каждый элемент вставлен. В пользователь может получить доступ к элементам по их целочисленный индекс (позиция в списке), и найдите элементы в списке.
Коллекция, не содержащая повторяющиеся элементы. Более формально наборы не содержат пары элементов e1 и e2 такие, что e1.equals (e2), и at самый один нулевой элемент. Как подразумевается название, этот интерфейс моделирует математическая абстракция множества.
Все классы List
поддерживают порядок вставки. Они используют различные реализации, основанные на производительности и других характеристиках (например, ArrayList
для скорости доступа к определенному индексу, LinkedList
для простого поддержания порядка). Поскольку ключа нет, дубликаты разрешены.
Классы Set
не поддерживают порядок вставки. Они могут необязательно устанавливать определенный порядок (как в SortedSet
), но обычно имеют порядок, определяемый реализацией, на основе некоторой хеш-функции (как в случае HashSet
). Поскольку Наборы
доступны по ключу, дублирование не допускается.
Упорядочивание ... в списке есть порядок, а в наборе нет.
Набор - это неупорядоченная группа отдельных объектов - дублирование объектов не допускается. Обычно это реализуется с использованием хэш-кода вставляемых объектов. (Определенные реализации могут добавлять порядок, но сам интерфейс Set - нет.)
Список - это упорядоченная группа объектов, которые могут содержать дубликаты. Это может быть реализовано с помощью ArrayList
, LinkedList
и т. Д.
Возможно, это не тот ответ, который вы ищете, но JavaDoc классов коллекций на самом деле довольно информативен. Скопировано / вставлено:
Упорядоченная коллекция (также известная как последовательность). Пользователь этого интерфейса имеет точный контроль над тем, где в список каждый элемент вставлен. В пользователь может получить доступ к элементам по их целочисленный индекс (позиция в списке), и поиск элементов в списке.
В отличие от наборов, списки обычно позволяют повторяющиеся элементы. Более формально списки обычно допускают пары элементы e1 и e2 такие, что e1.equals (e2), и они обычно разрешить несколько нулевых элементов, если они разрешить нулевые элементы вообще. Это не немыслимо, чтобы кто-то мог пожелать реализовать список, запрещающий дубликаты, бросая время выполнения исключения, когда пользователь пытается вставьте их, но мы ожидаем этого использования
Концептуально мы обычно называем неупорядоченную группировку, которая допускает дублирование как мешок и не допускает дубликатов - это набор.
Упорядоченные списки элементов (уникальные или нет)
Соответствуют интерфейсу Java с именем Список
Доступен по индексу
, реализованному с помощью
Списки уникальных элементов:
Соответствует интерфейсу Java с именем Set
Можно не получить доступ по индексу
, реализованному с использованием
Оба интерфейса Set
и List
соответствуют интерфейсу Java с именем Collection
Набор не может содержать повторяющиеся элементы, в то время как список может. Список (в Java) также подразумевает порядок.