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

1 ... 9 10 11 [ 12 ] 13 14 15 ... 219


ENAME

SMITH

CLERK

JONES

MANAGER

CLARK

MANAGER

KING

PRESIDENT

MILLER

CLERK

Решение

Используйте оператор LIKE в сочетании с оператором подстановки

SQL ( % ):

1 select ename, job

2 from emp

3 where deptno in (10,20)

4 and (ename like or job like %ER)

Хотя CASE и позволяет производить преобразование NULL значений в не-NULL значения, использование COALESCE, как видно из примеров, отличается простотой и лаконичностью.

Поиск по шаблону Задача

Требуется выбрать строки, соответствующие определенной подстроке или шаблону. Рассмотрим следующий запрос и результирующее множество:

select ename, job

from emp where deptno in (10,20)

ENAME JOB

SMITH CLERK JONES MANAGER CLARK MANAGER SCOTT ANALYST KING PRESIDENT ADAMS CLERK FORD ANALYST MILLER CLERK

Из служащих отделов 10 и 20 требуется выбрать только тех, в имени которых встречается буква I или чье название должности заканчивается на ER :



Обсуждение

При использовании в операции сопоставления с шаблоном LIKE оператор % выбирает любую последовательность символов. Во многих реализациях SQL также предоставляется оператор подчеркивания ( ) для выбора одного символа. Возвращение любой строки, содержащей I (в любом месте), обеспечивается заключением шаблона поиска I в операторы % . Если шаблон поиска не заключен в % , результаты запроса зависят от местоположения % . Например, чтобы найти названия должностей, заканчивающиеся на ER , оператор % ставится перед ER . Если требуется найти все должности, начинающиеся с ER , % должен следовать после ER .



Сортировка результатов запроса

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

Возвращение результатов запроса в заданном порядке

Задача

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

ENAME

MILLER CLERK 1300

CLARK MANAGER 2450

KING PRESIDENT 5000

Решение

Используйте оператор ORDER BY:

1 select ename,job,sal

2 from emp

3 where deptno = 10

4 order by sal asc



1 ... 9 10 11 [ 12 ] 13 14 15 ... 219

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