Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / select без from / 19 сообщений из 19, страница 1 из 1
25.07.2004, 17:19:04
    #32620330
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
Всем мое приветствие и благодарность.

Вопрос такой. Аксесс 2000. Пишу в запросе
select 1 as a
и без указания from - работает, выдает одну запись. Пытаюсь писать
select 1 as a
union all
select 2 as a
- не работает, выдает синтаксическую ошибку (Query input must contain at least one table or query).

В чем состоит логика? Когда можно и когда нельзя писать select без from?
...
Рейтинг: 0 / 0
25.07.2004, 17:22:28
    #32620331
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
И вопрос вдогонку. Поскольку
select 1 as a
union all
select 2 as a
не работает, то существует ли другой способ получить запрос из двух записей без ссылок на физические таблицы?
...
Рейтинг: 0 / 0
25.07.2004, 19:49:38
    #32620360
Alexanderik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
ןס- предполагается наличие какой либо базы, ибо пример чисто теоретический ?
...
Рейтинг: 0 / 0
25.07.2004, 20:18:18
    #32620362
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
Владимир СанычИ вопрос вдогонку. Поскольку
select 1 as a
union all
select 2 as a
не работает, то существует ли другой способ получить запрос из двух записей без ссылок на физические таблицы?

если слово "запрос" заменить словом "рекордсет, то в ADO - существует.
Можно сформировать и заполнить рекордсет, не связанный ни с какими таблицами.
...
Рейтинг: 0 / 0
25.07.2004, 20:33:03
    #32620365
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
Alexanderikןס- предполагается наличие какой либо базы, ибо пример чисто теоретический ?
Пример глобальный. Это вещь, которая могла бы пригодиться в разных базах и в разных случаях.

Victoshaесли слово "запрос" заменить словом "рекордсет, то в ADO - существует.
Можно сформировать и заполнить рекордсет, не связанный ни с какими таблицами.
Это я знаю. Но мне это, к сожалению, не годится. Хочется получить именно селект, который можно было бы использовать в Record/RowSource'е чего-нибудь.
...
Рейтинг: 0 / 0
25.07.2004, 20:39:25
    #32620367
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
Владимир Саныч Alexanderikןס- предполагается наличие какой либо базы, ибо пример чисто теоретический ?
Пример глобальный. Это вещь, которая могла бы пригодиться в разных базах и в разных случаях.

Victoshaесли слово "запрос" заменить словом "рекордсет, то в ADO - существует.
Можно сформировать и заполнить рекордсет, не связанный ни с какими таблицами.
Это я знаю. Но мне это, к сожалению, не годится. Хочется получить именно селект, который можно было бы использовать в Record/RowSource'е чего-нибудь.

понял. Тогда вопрос - почему не годится вариант задания Record/RowSource'а как "набора значений" ?
...
Рейтинг: 0 / 0
25.07.2004, 20:52:14
    #32620369
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
Да, с RowSource'ом я погорячился. Вопрос остается для RecordSource'а.
...
Рейтинг: 0 / 0
25.07.2004, 21:15:04
    #32620374
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
Саныч, я НЕ ЗНАЮ ответа на вопрос ПОЧЕМУ он так работает/не работает.

Поэтому приношу извинения за "замусоривание" потока.

Возможно (чистая гипотеза, полученная методом послюнявливания пальца с последующим приложением его ко лбу), работа UNION организована так, что перед непосредственным объединением данные отбираются во временные таблицы, в соответствии с селектами между предложением UNION.
Чистый же вычислительный запрос минует образование временных таблиц, пригодных для UNION.

Однако, на мой взгляд, практического интереса сия "теоретическая" гипотеза не представляет, независимо от того "похожа она на правду или нет".

В любом слумае рабочим оказывается вариант с заведением таблицы специального вида (ака DUMMY), содержащей строго ОДНУ строку.

тогда вычислительная операция

SELECT 1 AS F1 FROM DUMMY
UNION
SELECT 2 AS F1 FROM DUMMY
UNION
SELECT 3 AS F1 FROM DUMMY
...

Некоторую проблему можетт составить обеспечение того обстоятельства, что упомятая таблица всегда обязана содержать строго одну строку. и ее исчезновение/или добавление строк должно рассматриваться как гарушение структуры таблицы.


ЗЫ
там где есть рекордсоурс, там почти всегда есть рекордсет.
Так что альтернатива с принудительно сформированным рекордсетом адо, на мой взгляд тоже интересна.
Не знаю, окажется ли она "лучше" хоть в каком-нибудь отношении.
...
Рейтинг: 0 / 0
25.07.2004, 21:21:54
    #32620375
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
VictoshaВ любом слумае рабочим оказывается вариант с заведением таблицы специального вида (ака DUMMY), содержащей строго ОДНУ строку.

тогда вычислительная операция

SELECT 1 AS F1 FROM DUMMY
UNION
SELECT 2 AS F1 FROM DUMMY
UNION
SELECT 3 AS F1 FROM DUMMY

В моих системах такая таблица как правило есть, и я именно такой юнион сегодня и написал. Но все-таки интересно, единственный ли это способ...

Victoshaтам где есть рекордсоурс, там почти всегда есть рекордсет.
Так что альтернатива с принудительно сформированным рекордсетом адо, на мой взгляд тоже интересна.
Не знаю, окажется ли она "лучше" хоть в каком-нибудь отношении.
Но для этого нужно писать много строк кода. Мне сегодня понадобилось сделать отчет, в котором одна очень простая схема повторялась бы два раза с немножко разными данными. Хотел написать такой фиктивный селект из 2 записей, и не вышло.
...
Рейтинг: 0 / 0
25.07.2004, 22:08:47
    #32620385
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
Саныч, бросай ты этот Аксес, переходи на SqlServer :).
Там то, что ты хочешь-стандартная (и очень полезная фича)
Кстати ,если у тебя ADP то это элементарно делается
З.Ы Необязательно использовать Dummy таблицу, можно любую системную,
только вместо union all надо union ,чтобы убрать дупликаты
...
Рейтинг: 0 / 0
25.07.2004, 22:09:49
    #32620387
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
Понял, спасибо. Увы, mdb. И убирать дупликаты не хочу.
...
Рейтинг: 0 / 0
25.07.2004, 22:10:51
    #32620388
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
А с системной таблицей, наверно, будет работать медленно, пропорционально размеру таблицы?
...
Рейтинг: 0 / 0
25.07.2004, 22:16:40
    #32620392
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
Сорри, что то стал заикаться :)
авторИ убирать дупликаты не хочу.
Тогда Dummy.
А можно полюбопытствоть. Зачем Гуре Аксеса дупликаты, да и в еще искусственно созданном наборе?
...
Рейтинг: 0 / 0
25.07.2004, 22:19:56
    #32620393
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
авторА с системной таблицей, наверно, будет работать медленно, пропорционально размеру таблицы?
Пропорционально размеру -это безусловно. А вот медленно-все в мире относительно
...
Рейтинг: 0 / 0
25.07.2004, 22:23:40
    #32620395
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
(c)VIGТогда Dummy.
Жалко, что я в mdb.

(c)VIGА можно полюбопытствоть. Зачем Гуре Аксеса дупликаты, да и в еще искусственно созданном наборе?
Я не гуря. :^) Собственно говоря, если я пишу так, как написано в самом первом посте, то union и union all сработают одинаково. Просто, как я понимаю, операция убирания дупликатов тоже занимает время, тогда как их у меня с самого начала нет.
...
Рейтинг: 0 / 0
25.07.2004, 22:39:46
    #32620402
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
Саныч, за удовольствия надо платить, или наличием искусственной таблицы с одной записью, или убиранием дупликатов из системной таблицы ,зато которая всегда имеется в наличии.
З.Ы А вообще-то ребятам из Редмонда руги надо повыдергивать из одного места.Или делать что-то как положено, или вообще не делать.
...
Рейтинг: 0 / 0
25.07.2004, 22:47:46
    #32620405
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
Я им передам. :^) Thanx.
...
Рейтинг: 0 / 0
25.07.2004, 23:06:44
    #32620415
(c)VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
Только не забудь.:)
З.Ы Я имел в виду ноги , а не руки.Хотя и руки то же можно :)
...
Рейтинг: 0 / 0
25.07.2004, 23:09:27
    #32620417
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select без from
Руки, руки. У них руки оттуда растут.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / select без from / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]