Функции преобразования значений.
• Преобразование в символьную строку — 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!