在 PostgreSQL 中,当我想获得 0/1 输出而不是 f/t 时,我可以将单个布尔字段转换为整数。
SELECT some, thing, mybool::integer FROM mytable;
但是有没有办法让 PostgreSQL 对查询中的任何布尔字段执行此操作,而不指定字段名称?
如果我有:
SELECT * FROM mytable;
我希望任何布尔值都输出为 0/1。
在这种特殊情况下,我使用psql
. 在它的选项或设置中没有看到任何东西pset
,所以我希望数据库中可能有一些全局配置,或者可能有一些晦涩的 SQL 语法。
PostgreSQL 没有输出的显示类型。使用
libpq
你有两个选择:您无法自定义它返回文本的方式。而且,这两种方式都没有多大意义。该库是为人们构建界面而存在的,而不是为最终用户而存在的。
使用 C,如果您将 1 字节作为布尔值,最好使用
t
andf
因为0
(整数)和'0'
字符串根本不同,但共享相同的 gylph“0”和描述“零”。现在,
psql
我认为您可能对此有有效的功能请求。也许在未来你会看到类似的东西欢迎您对此提出功能请求。
您可以在此处的源代码中看到此硬编码