首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PSQL -双精度类型的无效输入语法:"null";

PSQL -双精度类型的无效输入语法:"null";
EN

Stack Overflow用户
提问于 2018-06-01 05:50:21
回答 1查看 15.3K关注 0票数 3

我正在编写一个查询来提取一些数据,并遇到了这个无效的输入语法,类型为double precision:"null“错误,并且不完全确定它背后的含义和/或还没有想出解决方案。我正在运行case语句的列确实有null值,或者它有我需要的相应值。

帐户id列可以有字符串,也可以有空值

我试过了:

case
    when length(account_id) > 1
      then account_id
    else
      'null'
    end as account_id,

case
    when account_id is not null
      then account_id
    else
      'null'
    end as account_id,

两者都会导致无效操作:类型double precision的输入语法无效:"null";

当我只是将其放入一列并使用长度(Account_id)时,它将显示长度或仅显示null -为什么这在case语句中不起作用?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-01 05:52:55

'null'是一个字符串。null才是。。。好吧,null。您的account_id似乎属于double precision类型。对于account_id来说,这是一个奇怪的选择,但是不适当的数据类型并不重要。与此相关的是,case表达式希望所有内容都是相同类型的,其中数字优先。

你可能想要这两件事中的一件:

(case when length(account_id) > 1 then account_id end) as account_id,

如果没有else,则默认为null。您可以添加else null,但这是多余的。

或者:

(case when length(account_id) > 1 then account_id::varchar(255) else 'null' end) as account_id,
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50633292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档