168.98K

Лекция 10.2 2024

1.

Лекция 10.2

2.

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()функция преобразует его
в целое число. В противном случае возвращает ноль.
English     Русский Правила