Форум: "Базы";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
ВнизНе работает ORDER BY на VIEW Найти похожие ветки
← →
Vemer (2003-11-07 12:52) [0]Здравствуйте.
Пытаюсь создать VIEW для склада, который брак показывает,
но почему-то при создании ругается на строку с Order By PIN. В Фароновском учебнике есть пример VIEW с ORDER, в общем не могу понять почему VIEW не создается. Может ему SQL 3 нужен или товарищ фаронов ошибается и ORDER нельзя в VIEW использовать? Помогите разобраться.
Код создания VIEW:
create view Brak_View ( PIN, Iname, Brak )
as
select PIN, Iname, Brak from Sklad
where Brak > 0
order by PIN
← →
Sandman25 (2003-11-07 12:56) [1]View создается без Order By.
create view Brak_View ( PIN, Iname, Brak )
as
select PIN, Iname, Brak from Sklad
where Brak > 0;
А вот при извлечении из него уже можно сортировать.
select *
from brak_view
order by 1 desc
← →
Vemer (2003-11-07 13:03) [2]Спасибо за ответ.
Фаронов - м..к, Форум - Rulez!!
Жаль, а так хотелось. Тогда проще Query в проге создать будет, который и Select и Order будет делать.
← →
Sandman25 (2003-11-07 13:08) [3]View удобнее тем, что если изменится реализация (например, браком будет считаться, если (braK > 0) and (brak_allowed = 1)) то не надо будет исправлять программу. Или тем, что если в каждом query нужно фильтровать по тому же условию, то устаешь, и тогда лучше create view ne_brak :)
Но в данном случае похоже, действительно, написать from sklad легче.
← →
MsGuns (2003-11-07 13:52) [4]А я использую вьшки в двух случаях:
1. Сложный запрос из разных таблиц, при этом алгоритмика выборки может меняться и достаточно часто. В этом случае предпочтительнее поменять вью в метаданных, чем лазать во все проги на всех компах, где исп-ся данная выборка
2. Получение предварительного датасета для последующего извлечения из него клиентским запросом по некоторым своим (клиентским опять же) критериям. Что-то вроде "промежуточного звена"
← →
Sandman25 (2003-11-07 15:17) [5]3. Разграничение доступа.
3a. Клиент видит только то, что относится к нему
create view viw_who_am_i as select * from all_user where login=USER
3b. Клиент что-то видит, только если у него есть контрольная точка.
create view viw_all_users as select * from all_users where exists (select ...)
4. Динамическое использование. Иногда нужно использовать либо одну связку таблиц, либо другую, в зависимости от запроса пользователя. Легче изменить from viw1 на from viw2, чем from table1, table2 where table1.id=table2.id
на from table3, table4 where table3.id=table4.id and not exists (select * from table5 ...)
← →
Johnmen (2003-11-07 23:15) [6]>Vemer ©
Видимо умение (желание) посмотреть в прилагаемую к IB6 документацию тебе несвойственно... :( Что печально...
Иначе не было бы таких !!! вопросов...
A SELECT statement clause cannot include the ORDER BY clause.
← →
VID (2003-11-08 10:41) [7]Johnmen: попроще, человека просто по всей видимости сбило с толку то, что в книге популярного автора как раз-таки "ОРДЕР БАЙ клауз" :) вполне используется
← →
Vemer (2003-11-08 10:56) [8]> Jormen
К Yaffil Personal документация не прилагается.
А IBserver Open Source 6.0 я просто переписал у кого-то.
Что есть, тем и пользуемся. Фаронов у нас тоже недешев.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c