Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

ORDER BY NVL(budget,0) DESC

Операции вставки строк | Операции выборки строк | SELECT p.*, d.* FROM project p, department d |


Читайте также:
  1. DISORDER SPECIFICITY OF GRAY AND WHITE MATTER ENDOPHENOTYPES
  2. Exercise 2 Order the words to make sentences
  3. Exercise 2 Write the words in the correct order to make questions.
  4. ORDER BY budget DESC
  5. Put the following headings in a logical order according to the Text.
  6. Put the passages in the right order.

 

Рис. 36. Результат выполнения сортировки

с использованием функции NVL

 

Пример 19. Для проектов, которым назначено подразделение-исполнитель, выбрать информацию об их номере, названии и бюджете, а также наименовании подразделения-исполнителя. Считать, что проекты, для которых бюджет не указан, имеют нулевой бюджет. В результирующей информации неопределенные значения бюджетов должны быть заменены нулем. При этом информация должна быть упорядочена в алфавитном порядке по наименованию подразделения, а внутри каждого подразделения – по убыванию бюджета проекта.

В данном случае сортировке должно быть подвергнуто простое объединение информации из двух таблиц. Запрос для простого объединения будет иметь следующий вид:

 

SELECT p.proj_no, p.proj_name,

NVL(p.budget,0) AS budget_new,

d.dept_name

FROM project p, department d

WHERE p.dept_no = d.dept_no

 

В данном запросе в качестве результирующей колонки используется выражение NVL(p.budget,0), после которого следует ключевое слово AS и наименование “budget_new”. Такая конструкция позволяет в результате запроса задать колонке новое название. В данном случае колонка, содержащая результат функции NVL(p.budget,0), будет иметь название “budget_new”. Переименование колонок в результате запроса удобно для назначения имен колонкам, содержащим результаты каких-либо выражений (как в данном случае), а также для изменения наименований колонок, имеющих слишком длинные или интуитивно непонятные названия. Ключевое слово AS может быть опущено, а запрос представлен в виде:

 

SELECT p.proj_no, p.proj_name,

NVL(p.budget,0) budget_new,

d.dept_name

FROM project p, department d

WHERE p.dept_no = d.dept_no

 

В результате такого запроса данные могут быть выбраны в произвольном порядке. Теперь добавим к запросу сортировку с использование конструкции ORDER BY, после которой укажем критерии сортировки. При этом допустимы различные варианты завершения запроса:

ORDER BY d.dept_name ASC, NVL(p.budget,0) DESC

или

ORDER BY d.dept_name, NVL(p.budget,0) DESC

или

ORDER BY d.dept_name, budget_new DESC

или

ORDER BY 4, 3 DESC

 

Последний вариант основан на использовании номеров, определяющих положение колонки в результате запроса: 4 – наименование подразделения, 3 – бюджет проекта. Результаты всех запросов будут одинаковы. Если использовать первый, классический вариант конструкции ORDER BY, то полный текст запроса будет следующим:

 

SELECT p.proj_no, p.proj_name,

NVL(p.budget,0) budget_new,

d.dept_name

FROM project p, department d

WHERE p.dept_no = d.dept_no


Дата добавления: 2015-08-17; просмотров: 41 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
ORDER BY budget DESC| Часть 1 1 страница

mybiblioteka.su - 2015-2024 год. (0.006 сек.)