CREATE CAST用于定义数据类型之间的转换。本文为您介绍CREATE CAST的用法。

语法

CREATE CAST (source_type AS target_type)
    WITH INOUT
    [ AS ASSIGNMENT | AS IMPLICIT ]
参数说明如下表所示。
参数 描述
source_type 该转换的源数据类型。
target_type 该转换的目标数据类型。
WITH INOUT 表示该转换为I/O转换。

该转换通过调用源数据类型的输出函数来执行,并将结果传给目标数据类型的输入函数。

AS ASSIGNMENT 表示该转换可以在赋值模式下隐含调用。
AS IMPLICIT 表示该转换可以在任意环境里隐含调用。

示例

通常,在Filter中比较字符类型和数值类型时,默认不进行转换。您可以使用CREATE CAST语句,创建一个支持比较字符类型和数值类型的CAST,示例语句如下。

CREATE TABLE test_cast(id text);
INSERT INTO test_cast VALUES(888);
SELECT * FROM test_cast aa WHERE id > 888;
CREATE CAST (text AS integer) WITH INOUT AS IMPLICIT;
SELECT * FROM test_cast aa WHERE id > 888;

更多关于CREATE CAST的详情,请参见PostgreSQL CREATE CAST