Перейти к содержанию

CAST

Функция CAST используется в DQL-командах для приведения выражения к определенному типу.

Синтаксис

CAST ( expression AS type ) expression :: type

Выражение

Диаграмма

NOT table . column literal case cast current_date substr to_char to_date trim NOT EXISTS ( select values ) ( select values ) ( expression , ) IS NOT NULL expression NOT BETWEEN expression AND + - * / <> != >= > <= < = NOT IN || AND OR expression

Литерал

Диаграмма

TRUE FALSE NULL decimal double integer string unsigned $ unsigned ?

Тип

Диаграмма

BOOL BOOLEAN DATETIME DECIMAL DOUBLE INT INTEGER NUMBER SCALAR STRING TEXT UNSIGNED UUID VARCHAR ( length )

Примеры

В качестве примера покажем преобразование дробных чисел в целые с отбрасыванием дробной части. Используем следующую таблицу:

Table_scores

В обычном виде значения колонки score имеют дробную часть и определены в схеме данных типом DECIMAL:

SELECT "score" FROM "scoring";
---
  'metadata': [
  {'name': 'score', 'type': 'decimal'}],
  'rows': [
    [78.33],
    [84.61],
    [47.28]]
...

Преобразуем тип значений из колонки score в INT с помощью функции CAST:

picodata> SELECT CAST("score" AS INT) FROM "scoring";
+-------+
| COL_1 |
+=======+
| 78    |
|-------|
| 84    |
|-------|
| 47    |
+-------+
(3 rows)

В качестве альтернативы можем использовать синтаксис PostgreSQL — двойное двоеточие:

picodata> SELECT "score"::INT FROM "scoring"
+-------+
| COL_1 |
+=======+
| 78    |
|-------|
| 84    |
|-------|
| 47    |
+-------+
(3 rows)