Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.130.31] |
|
Данный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Страницы: (3) [1] 2 3 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
возможно ли делать запросы из виртульных (отображаемых, т. е. созданных командой SELECT) таблиц?
т. е. что-то типа того: SELECT * FROM (SELECT field_name1, field_name2 FROM table_name WHERE field_name3 <> NULL) WHERE feild_name1 > 5 я понимаю, что пример плохой, но всё же, возможно ли это? |
Сообщ.
#2
,
|
|
|
Да
|
Сообщ.
#3
,
|
|
|
И не только select но и insert
|
Сообщ.
#4
,
|
|
|
а можно создать имя для виртуальной таблицы...и работать с ней как с обычной?
типа вот этого: create table virtual_table_name ( SELECT field_name3, field_name4 FROM table_name WHERE field_name1 < field_name2 ); UPDATE virtual_table_name SET field_name5 = field_name6 WHERE field_name7 <= ( SELECT count (field_name3) FROM virtual_table_name <-----------------------------here WHERE field_name3 = field_name4 ); drop table virtual_table_name; |
Сообщ.
#5
,
|
|
|
Цитата не можно, а нужно.archimed7592, 9.06.04, 17:18 а можно создать имя для виртуальной таблицы...и работать с ней как с обычной? Цитата не будет работать, нужно писатьSELECT * FROM (SELECT field_name1, field_name2 FROM table_name WHERE field_name3 <> NULL) Цитата SELECT * FROM (SELECT field_name1, field_name2 FROM table_name WHERE field_name3 <> NULL) А(алиас) |
Сообщ.
#6
,
|
|
|
All как получить имя файла созданого оператором "select" (_Q?????)?
|
Сообщ.
#7
,
|
|
|
Цитата archimed7592, 9.06.04, 17:18 а можно создать имя для виртуальной таблицы...и работать с ней как с обычной? Для этого существуют представления (Views). 2 Bas: не понял... Какого файла, каким "select" (_Q?????)? ??! |
Сообщ.
#8
,
|
|
|
InterBase не поддерживает такую форму запроса.
|
Сообщ.
#9
,
|
|
|
Цитата Chow @ 10.06.04, 09:14 Цитата archimed7592, 9.06.04, 17:18 а можно создать имя для виртуальной таблицы...и работать с ней как с обычной? Для этого существуют представления (Views). А я смогу в этот Views добавлять/изменять данные перед отправкой клиенту? И еще: если прав, то views это виртуальные(не физические) таблицы, а следовательно они сами будут уничножаться после окончания выполнения процедуры. Или надо самому чистить? |
Сообщ.
#10
,
|
|
|
View-представление, физически существует в виде уже скомпиленного запроса например[sql]select *
from таблица[/sql] и при вызове дает данные. вот и все Добавлено в : Цитата добавить нет, но изменить для показа да.[sql]select Name + ' user' AS NameDVP, 14.07.04, 09:08 А я смогу в этот Views добавлять/изменять данные перед отправкой клиенту? from таблица [/sql] правда существуют модифицируемые представления, но ета другая песня. |
Сообщ.
#11
,
|
|
|
Цитата DVP от 14.07.04, 06:08 они сами будут уничножаться после окончания выполнения процедуры. Или надо самому чистить? чистить вот так: if Active then Close; with SQL do begin Clear; Add('DROP VIEW Temper2, Temper3'); end; ExecSQL; |
Сообщ.
#12
,
|
|
|
А как проверить, что представления (view) существуеют в базе?
столкнулся с проблемой, что перед выполнением запросов необходимо прежде удалить представления, но не знаю проверить их наличие.... |
Сообщ.
#13
,
|
|
|
Разговор беспредметный... Вложенные запросы реализованы не во всех базах данных. Пожалуйста конкретезируйте с какой базой данных работаете...
|
Сообщ.
#14
,
|
|
|
сорри, даже и не знал, что по разному, думал, если пользоваться стандарт sql-92, то должно быть везде одинаково
конкретизирую ADO/Delphi6/Access97-2000-2002 |
Сообщ.
#15
,
|
|
|
Цитата tomsksmile, 5.10.04, 21:47 столкнулся с проблемой, что перед выполнением запросов необходимо прежде удалить представления, но не знаю проверить их наличие.... Удаляй... система сама разберётся есть оно или нет... |