Программирование >>  Преобразование значений null 

1 ... 14 15 16 [ 17 ] 18 19 20 ... 219


SCOTT 3000

KING 5000

TURNER 1500

ADAMS 1100

JAMES 950

FORD 3000

MILLER 1300

Используя значения столбца IS NULL, можно без труда вынести строки со значениями NULL в начало или конец списка, не вмешиваясь в сортировку COMM.

Сортировка по зависящему от данных ключу

Задача

Требуется провести сортировку с применением некоторой условной логики. Например, если значение JOB - SALESMAN (агент по продажам), сортировка должна осуществляться по столбцу COMM; в противном случае сортируем по SAL. Необходимо получить следующее результирующее множество:

ENAME

COMM

TURNER

1500

SALESMAN

ALLEN

1600

SALESMAN

WARD

1250

SALESMAN

SMITH

CLERK

JAMES

CLERK

ADAMS

1100

CLERK

MARTIN

1250

SALESMAN

1400

MILLER

1300

CLERK

CLARK

2450

MANAGER

BLAKE

2850

MANAGER

JONES

2975

MANAGER

SCOTT

3000

ANALYST

FORD

3000

ANALYST

KING

5000

PRESIDENT

Решение

Используйте выражение CASE в операторе ORDER BY:

1 select ename,sal,job,comm

2 from emp

3 order by case when job = SALESMAN then comm else sal end

Обсуждение

Для динамического изменения принципа сортировки результатов запроса может использоваться выражение CASE. Значения, передаваемые в оператор ORDER BY, выглядят следующим образом:



select ename,sal,job,comm,

case when job = SALESMAN then comm else sal end as ordered from emp order by 5

ENAME

COMM

ORDERED

TURNER

1500

SALESMAN

ALLEN

1600

SALESMAN

WARD

1250

SALESMAN

SMITH

CLERK

JAMES

CLERK

ADAMS

1100

CLERK

1100

MARTIN

1250

SALESMAN

1300

1300

MILLER

1300

CLERK

1300

CLARK

2450

MANAGER

2450

BLAKE

2850

MANAGER

2850

JONES

2975

MANAGER

2975

SCOTT

3000

ANALYST

3000

FORD

3000

ANALYST

3000

KING

5000

PRESIDENT

5000



Работа с несколькими таблицами

Данная глава знакомит с использованием объединений и операций над множествами для комбинирования данных нескольких таблиц. Объединения лежат в основе SQL. Операции над множествами также имеют очень большое значение. Путь к овладению сложными запросами, о которых рассказывается в последующих главах книги начинается здесь, с объединений и операций над множествами.

Размещение одного набора строк под другим Задача

Требуется извлечь данные, хранящиеся в нескольких таблицах, размещая одно результирующее множество под другим. Необязательно, чтобы у таблиц был общий ключ, но типы их столбцов должны совпадать. Например, необходимо вывести на экран имена и номер отдела служащих 10-го отдела, хранящиеся в таблице EMP, а также названия и номера всех отделов из таблицы DEPT. Должно быть получено следующее результирующее множество:

ENAME AND DNAME DEPTNO

CLARK 10

KING 10

MILLER 10

ACCOUNTING 10

RESEARCH 20

SALES 30

OPERATIONS 40



1 ... 14 15 16 [ 17 ] 18 19 20 ... 219

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика