【发布时间】:2015-09-29 09:10:34
【问题描述】:
我正在尝试将 smallint 转换为 PostgreSQL 中的布尔值。这不是开箱即用的,例如:
select (1::smallint)::bool;
返回“错误:42846:无法将类型 smallint 转换为布尔值”
我可以使用以下方法解决此问题:
select (1::smallint)::int::bool;
但我想知道是否有一种方法可以定义如何将smallint 直接转换为boolean?
原因是我(以及与我一起工作的其他人)有汇总查询,将数据库表中的int 列转换为boolean。我想将此列更改为smallint,但这样做会破坏这种逻辑,因为没有从smallint 直接转换为boolean。是否可以使用 postgres CREATE CAST 来定义如何将 smallint 转换为 boolean?
【问题讨论】:
标签: postgresql casting