Похожие презентации:
Лекция 10.2 2024
1.
Лекция 10.22.
PostgreSQL CAST:преобразование значения
одного типа в другой
вы узнаете, как использовать CAST() функции и операторы PostgreSQL для
преобразования значения одного типа в другой.
3.
Введение в функцию PostgreSQL CAST() иоператор приведения типа (::)
• Существует множество случаев, когда требуется преобразовать
значение одного типа в другой. PostgreSQL предлагает CAST() функцию
и оператор приведения ( ::) для этого.
• Сначала укажите , value который вы хотите преобразовать. Это может
быть константа, столбец таблицы или выражение.
• Затем укажите целевой тип данных , в который вы хотите
преобразовать value.
Возвращает CAST()значение после приведения к указанному целевому
типу данных. Если функция CAST()не может привести значение к
целевому типу, она выдаст ошибку. Сообщение об ошибке будет
зависеть от характера ошибки преобразования.
4.
Оператор приведения типа PostgreSQL (::)• Помимо функции type CAST(), вы можете использовать следующий
оператор приведения ( ::) для преобразования значения одного типа в
другой:
• value— это значение, которое вы хотите преобразовать.
• target_typeу казывает целевой тип, к которому вы хотите привести
значение.
Оператор приведения ::возвращает значение после приведения valueк
target_type или вызывает ошибку, если приведение не удалось.
Обратите внимание, что оператор приведения (::) специфичен для
PostgreSQL и не соответствует стандарту SQL.
5.
1) Пример преобразования строки в целоечисло
• Следующий оператор использует CAST() оператор для
преобразования строки в целое число:
• Если выражение не может быть преобразовано в целевой тип,
PostgreSQL выдаст ошибку. Например:
6.
2) Пример преобразования строки в дату• В этом примере мы преобразовали 2015-01-01 литеральную
строку в January 1st 2015и 01-OCT-2015в October 1st 2015.
7.
3) Пример приведения строки к типуdouble
• В следующем примере функция CAST() используется для
преобразования строки '10.2’ в число двойной точности:
• Чтобы это исправить, вам нужно использовать DOUBLE PRECISION
вместо DOUBLE этого следующее:
8.
4) Пример преобразования строки влогическое значение
• В этом примере используется CAST() для преобразования строки
«true», «T» в значение true и «false», «F» в значение false:
9.
5) Пример преобразования строки в меткувремени
• В этом примере оператор приведения (::) используется для
преобразования строки в метку времени :
10.
6) Пример приведения строки к интервалу• В этом примере оператор приведения используется для
преобразования строки в интервал :
11.
7) Пример преобразования временнойметки в дату
• В следующем примере используется CAST()преобразование
временной метки в дату:
12.
8) Преобразовать интервал в текст• В следующем примере CAST()функция используется для
преобразования интервала в текст:
13.
10) Преобразование JSON в JSONB• В следующем примере CAST()функция используется для
преобразования JSON в JSONB:
14.
11) Преобразование числа двойнойточности в целое число
• В следующем примере CAST()функция используется для
преобразования числа двойной точности в целое число:
15.
12) Преобразование массива в текст16.
13) Преобразование текста в массив17.
14) Пример использования CAST стабличными данными
• Поскольку требования меняются, нам приходится использовать ту
же ratings таблицу для хранения оценок в виде чисел 1, 2 и 3
вместо A, B и C:
18.
• Теперь нам нужно преобразовать все значения в rating столбце вцелые числа, все остальные оценки A, B, C будут отображаться как
ноль.
• Для этого можно использовать CASE выражение с типом CAST, как
показано в следующем запросе
• rating ~ E'^\\d+$': Это выражение сопоставляет значения в столбце
рейтинга с регулярным выражением E'^\\d+$'. Шаблон проверяет,
содержит ли значение только цифры ( \d+) от начала ( ^) до конца ( $).
Буква Eперед строкой указывает на то, что это escape-строка.
• Если значение содержит только цифры, CAST()функция преобразует его
в целое число. В противном случае возвращает ноль.