Функции преобразования значений.



Преобразование в символьную строку — TO_CHAR

TO_CHAR (<значимое выражение> [, <символьный формат>])

— <значимое выражение> должно представлять числовое значение или значение типа дата-время;

— для числовых значений <символьный формат> должен иметь синтаксис [S]9[9…][.9[9…]], где S – представление знака числа (при отсутствии предполагается без отображения знака), 9 — представление цифр-знаков числового значения (для каждого знакоместа). Символьный формат определяет вид отображения чисел. По умолчанию для числовых значений используется формат '999999.99';

для значений типа ДАТА-ВРЕМЯ <символьный формат> имеет вид (т. е. вид отображения значений даты и времени)

— в части даты:

'DD-Mon-YY'

'DD-Mon-YYYY'

'MM/DD/YY'

'MM/DD/YYYY'

'MM.DD.YY'

'MM.DD.YYYY'

В части времени:

'НН24'

'НН24:Ml'

'НН24:MI.SS’

'НН24:Ml:SS.FF’

где: - НН24 — часы в диапазоне от 0 до 24;

Ml — минуты;

SS — секунды;

FF — тики (сотые доли секунды)

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

Возвращаемое значение — символьное представление <значимого выражения> в соответствии с заданным <символьным форматом> преобразования.

• Преобразование из символьного значения в числовое – TO_NUMBER

TO_NUMBER(<значимое символьное выражение>)

При этом <значимое символьное выражение> должно задавать символьное значение числового типа.

• Преобразование символьной строки в дату — ТО_DATE

ТО_DATE (<значимое символьное выражение> [,

<символьный формат>])

- <значимое символьное выражение> должно задавать символьное значение типа ДАТА-ВРЕМЯ;

— <символьный формат> должен описывать представление значения типа ДАТА-ВРЕМЯ в <значимом символьном выражении>. Допустимые форматы (в том числе и формат по умолчанию) приведены выше.

Возвращаемое значение — <значимое символьное выражение> во внутреннем представлении. Тип возвращаемого значения — DАТЕ. Над значениями типа DATE разрешены следующие операции:

• к значению типа DATE можно прибавлять значения типа INTERVAL, в результате чего получается значение типа DATE;

• при вычитании двух значений типа DATE получается значение типа INTERVAL;

• при вычитании из значения типа DATE значения типа INTERVAL получается значение типа DATE.

В бинарных операциях один из операндов должен иметь значение отдельного элемента даты: только год, или только месяц, или только день.

Пример. Запрос

SELECT SURNAME, МАМЕ, BIRTHDAY,

TO_CHAR(BIRTHDAY, 'DD-Mon-YYYY' ),

TO_CHAR(BIRTHDAY, 'DD.ММ.YY' )

FROM STUDENT;

вернет результат

SURNAME NAME BIRTHDAY    
Иванов Петров Сидоров Кузнецов Зайцева Павлов Котов Лукин Петров Белкин Иван Петр Вадим Борис Ольга Андрей Павел Артем Антон Вадим 3/12/1988 11/12/1986 7/06/1985 8/12/1987 21/05/1987 5/11/1985 NULL 11/12/1987 5/08/1987 20/01/1986 3-де к-1988 11-дек-1986 7-июн-1985 8-дек-1987 21-май-1987 5-ноя-1985 NULL 11-дек1987 5-авг-1987 20-янв-1986 3.12.88 11.12.86 7.06.85 8.12.87 21.05.87 5.11.85 NULL 11.12.87 5.08.87 20.01.86

Функция CAST является средством явного преобразования данных из одного типа в другой. Синтаксис этой команды имеет вид

CAST <значимое выражение> AS <тип данных>

• <значимое выражение> должно иметь числовой или символьный тип языка SQL (возможно, с указанием длины, точности и масштаба) или быть NULL-значением.

• Любое числовое выражение может быть явно преобразовано в любой другой числовой тип.

• Символьное выражение может быть преобразовано в любой числовой тип. При этом в результате такого преобразования отсекаются начальные и конечные пробелы, а остальные символы преобразуются в числовое значение по правилам языка SQL.

• Если заданная явным образом длина символьного типа недостаточна и преобразованное значение не размещается в нем, то результативное значение усекается справа.

• Возможно явное преобразование символьного типа в символьный с другой длиной. Если длина результата больше длины аргумента, то значение дополняется пробелами; если меньше, то усекается.

• NULL преобразуется в NULL.

• Числовое выражение может быть преобразовано в символьный тип.

Пример .

SELECT CAST STUDENT_ID AS CHAR(10)

FROM STUDENT;

УПРАЖНЕНИЯ

1. Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала один столбец, содержащий последовательность разделенных символом ";" (точка с запятой) значений всех столбцов этой таблицы; при этом текстовые значения должны отображаться прописными символами (верхний регистр), т. е. быть представленными в следующем виде:

10; КУЗНЕЦОВ; БОРИС; 0; БРЯНСК; 8.12.1987; 10.

2. Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала всего один столбец в следующем виде: Б. КУЗНЕЦОВ; место жительства — БРЯНСК; родился — 8.12.87.

3. Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала всего один столбец в следующем виде: б. кузнецов; место жительства — брянск; родился: 8-дек-1987.

4. Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала всего один столбец в следующем виде: Борис Кузнецов родился в 1987 году.

5. Составьте запрос, выводящий фамилии, имена студентов и величину получаемых ими стипендий, при этом значения стипендий должны быть увеличены в 100 раз.

6. То же, что и в упр. 4, но только для студентов 1, 2 и 4 курсов и таким образом, чтобы фамилии и имена были выведены прописными буквами.

7 Составьте запрос для таблицы UNIVERSITY таким образом, что - бы выходная таблица содержала всего один столбец в следующем виде: Код-10; ВГУ-r. ВОРОНЕЖ; Рейтинг=296.

8. То же; что и в упр. 7, но значения рейтинга требуется округлить до первого знака (например, значение -382 округляется-до 400).


Дата добавления: 2019-02-12; просмотров: 587; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!