Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.009 c
14-90131
Думкин
2003-11-06 06:23
2003.11.27
С днем рождения! 6 ноября.


6-90026
Tol-123
2003-10-01 14:07
2003.11.27
Широковещательный TCP пакет


1-89809
NewD
2003-11-17 11:09
2003.11.27
Как реализовать динамический массив через указатели


3-89694
LittleGirly
2003-11-05 15:26
2003.11.27
View в DBGrid


1-89975
AndriyS
2003-11-17 15:44
2003.11.27
TWebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский