【问题标题】:Postgresql invalid input syntax for type boolean: "null"Postgresql 布尔类型的无效输入语法:“null”
【发布时间】:2018-08-14 12:13:22
【问题描述】:

我正在学习 postgresql,我输入了以下命令。

 CREATE TABLE t(co1 boolean, col2 text);
 INSERT INTO t VALUES(NULL, 'NULL');
 SELECT * FROM t where col2::boolean;

结果是这样的:

ERROR:  invalid input syntax for type boolean: "NULL".

既然 'True'::boolean 是正确的,为什么会发生这种情况?

【问题讨论】:

  • 错误是从哪里来的? (创建、插入还是选择?)
  • 现在我明白了,'NULL' 不是空值,它是一个字符串...
  • null 既不是true 也不是false
  • 你想达到什么目的?
  • 我尝试将数据从文本转换为布尔值。 'True'::boolean 没有错误,但 'Null'::boolean 返回错误。

标签: sql postgresql


【解决方案1】:

您的 col2 列是文本,而不是布尔值

CREATE TABLE t(co1 boolean, col2 text);
 INSERT INTO t VALUES(NULL, 'NULL');
 SELECT * FROM t where col2::text;

【讨论】:

    猜你喜欢
    • 2012-11-09
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 2018-09-29
    • 2020-02-29
    相关资源
    最近更新 更多