Приведение типов
Приведение типов относится к операции преобразования значения в определенном типе данных к соответствующему значению в другом типе данных. Приведение типов может быть неявным или явным. Здесь описывается синтаксис явного приведения.
Дополнительную информацию о приведении типов можно найти на странице преобразование типов.
Явное приведение
Стандартный синтаксис SQL для явного приведения типов — CAST(expr AS TYPENAME), где TYPENAME — имя (или псевдоним) одного из типов данных DuckDB. DuckDB также поддерживает сокращенную запись expr::TYPENAME, которая также присутствует в PostgreSQL.
SELECT CAST(i AS VARCHAR) AS i FROM generate_series(1, 3) tbl(i);
| i |
|---|
| 1 |
| 2 |
| 3 |
SELECT i::DOUBLE AS i FROM generate_series(1, 3) tbl(i);
| i |
|---|
| 1.0 |
| 2.0 |
| 3.0 |
Правила приведения типов
Не все преобразования возможны. Например, невозможно преобразовать INTEGER в DATE. Приведения типов также могут вызывать ошибки, когда преобразование не может быть выполнено успешно. Например, попытка приведения строки 'hello' к INTEGER приведет к ошибке.
SELECT CAST('hello' AS INTEGER); Conversion Error: Could not convert string 'hello' to INT32
Точное поведение приведения зависит от исходного и целевого типов. Например, при приведении из VARCHAR в любой другой тип будет выполнена попытка преобразования строки.
TRY_CAST
TRY_CAST можно использовать, когда предпочтительно не вызывать ошибку, а вместо этого вернуть значение NULL. TRY_CAST никогда не вызовет ошибку и вместо этого вернет NULL, если преобразование невозможно.
SELECT TRY_CAST('hello' AS INTEGER) AS i; | i |
|---|
| NULL |
© Copyright 2018–2024 Stichting DuckDB Foundation
Licensed under the MIT License.
https://duckdb.org/docs/sql/expressions/cast.html