Ограничение количества выбираемых строк, страница 2

Строки таблицы не имеют определенного порядка, следовательно, простой запрос возвращает строки в произвольном порядке. Упорядочить строки можно с помощью предложения ORDER BY.

SELECT [DISTINCT] {*, столбец [псевдоним], …}

FROM таблица

[WHERE условие]

[ORDERBY {столбец | псевдоним | позиция} [ASC | DESC]];

ORDER BY   задает порядок вывода строк

ASC                сортирует строки в порядке возрастания (значение по умолчанию)

DESC             сортирует строки в порядке убывания

SQL> SELECT deptno, dname, loc FROM dept ORDER BY dname;

   DEPTNO DNAME          LOC

--------- -------------- -------------

       10 ACCOUNTING     NEW YORK

       40 OPERATIONS     BOSTON

       20 RESEARCH       DALLAS

       30 SALES          CHICAGO

По умолчанию строки сортируются в порядке возрастания:

§  Числовые значения – от меньшего к большему

§  Символьные значения – в алфавитном порядке

§  Даты – от более ранних к более поздним

§  Неопределенные значения выводятся последними

С помощью ключевого слова DESC можно вывести строки в порядке убывания:

§  Числовые значения – от большего к меньшему

§  Символьные значения – в обратном порядке

§  Даты – от более поздних к более ранним

§  Неопределенные значения выводятся первыми

Сортировать результат можно и по нескольким столбцам (до количества столбцов таблицы). Столбцы указываются через запятую. Порядок сортировки может быть разным для отдельных столбцов, в этом случае ключевое слово DESC следует указать после имени столбца или его позиции.

SQL> SELECT job, ename FROM emp

  2  WHERE job<='CLERK'

  3  ORDER BY job DESC, ename;

JOB       ENAME

--------- ----------

CLERK     ADAMS

CLERK     JAMES

CLERK     MILLER

CLERK     SMITH

ANALYST   FORD

ANALYST   SCOTT

Однострочные функции

 Простой блок запроса может быть усилен функциями, которые предназначены для манипулирования данными:

·  Выполнение расчетов

·  Изменение данных

·  Изменение формата вывода даты

·  Преобразование типов данных

  • Управление выводом групп строк

Функции в SQL бывают двух типов:

·  Однострочные – функции, которые работают с одной строкой и выдают результат для каждой строки

·  Многострочные – функции, которые работают с группами строк и выдают результат для группы строк

Однострочные функции предназначены для работы с элементами данных. Они принимают в качестве аргументов константы, значения переменных, имена столбцов, выражения и возвращают по одному значению для каждой строки, выбранной запросом. Однострочные функции могут изменять тип данных и могут быть вложенными. Они используются в предложениях SELECT, WHERE, ORDER BY.

Однострочные функции могут быть:

·  Символьные

·  Числовые

·  Для работы с датами

·  Функции преобразования

Символьные функции

Символьные функции принимают в качестве аргументов символьные данные и возвращают символьное или числовое значение.

Функция

Описание

LOWER (столбец | выражение)

Преобразует символы в нижний регистр

UPPER (столбец | выражение)

Преобразует символы в верхний регистр

INITCAP (столбец | выражение)

Преобразует первые буквы слов в верхний регистр, остальные – в нижний

CONCAT (столбец1 | выражение1, столбец2 | выражение2)

Объединяет первое символьное значение со вторым (аналогично ||)

SUBSTR (столбец | выражение, m[, n])

Возвращает n символов из символьного значения, начиная с позиции m. Если n опущено, возвращается остаток символьного значения от позиции m до конца строки. Если m отрицательно, отсчет начинается от конца символьного значения

LENGTH (столбец | выражение)

Возвращает количество символов в символьном значении

SQL> SELECT ename, job, sal FROM emp WHERE job='clerk';

no rows selected

SQL> SELECT ename, job, sal FROM emp WHERE LOWER(job)='clerk';

ENAME      JOB              SAL

---------- --------- ----------

SMITH      CLERK            800

ADAMS      CLERK           1100

JAMES      CLERK            950

MILLER     CLERK           1300

Числовые функции

Числовые функции принимают в качестве аргументов числовые значения и возвращают числовое значение.

Функция

Описание

ROUND (столбец | выражение[, n])

Округляет значения столбца или выражение до n десятичных знаков. Если n опущено, то до целого. Если n отрицательно, то округляется целая часть

TRUNC (столбец | выражение[, n])

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

MOD (m, n)

Возвращает остаток от деления m на n

 SQL> SELECT ename, job, sal FROM emp WHERE ename='JAMES';

ENAME      JOB              SAL

---------- --------- ----------

JAMES      CLERK            950

SQL> SELECT ename, job, ROUND(sal, -2) FROM emp WHERE ename='JAMES';

ENAME      JOB       ROUND(SAL,-2)

---------- --------- -------------

JAMES      CLERK              1000

SQL> SELECT ename, job, TRUNC(sal, -2) FROM emp WHERE ename='JAMES';

ENAME      JOB       TRUNC(SAL,-2)