命令介绍

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;
640

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