ruby-on-rails - 在 rails 中使用 postgres 查询检查空字段或空字段

标签 ruby-on-rails postgresql

我正在尝试在 posgtres 查询中使用 case 检查两个条件,在我的表中,一个字段可能有两个值要么为空要么为单引号 ('') 所以我尝试了这个查询但它没有执行

CASE WHEN (items.item_code is NULL OR items.item_code = '') THEN
items.name::text ELSE items.item_code::text END as item_code

错误如:

PG::Error: ERROR: syntax error at or near ")" LINE 1: ...HEN (items.item_code is NULL OR items.item_code = ) THEN ite..

最佳答案

你在 ruby​​ 中的引号有问题,在 sql 语句中没有。 尝试更改为:

CASE 
  WHEN (coalesce(length(items.item_code),0) + length(items.item_code)) < 1
  THEN items.name::text ELSE items.item_code::text 
END as item_code

上面的代码与您的代码进行相同的条件检查,但使用引号进行了空洞。我想你应该是这样的:

CASE WHEN (items.item_code is NULL OR items.item_code = \'\') THEN
items.name::text ELSE items.item_code::text END as item_code

关于ruby-on-rails - 在 rails 中使用 postgres 查询检查空字段或空字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41159560/

相关文章:

django - Docker:将新的 postgres 容器重新连接到现有的数据容器

php - 已解决 : Laravel: connection to AWS RDS results in a timed out

ruby-on-rails - 在 Rails 中,如何将私有(private)方法共享给嵌套 Controller ?

ruby-on-rails - 使用 minitest 正确模拟环境变量?

jquery - 如何使用 jquery 和 Rails 3 发送带有嵌套表单的动态参数?

ruby-on-rails - 如何通过 Rails POST 请求在 firebase 中安排云消息

sql - postgres中具有多个值列的数据透视表

windows - Windows 上的 Psycopg 安装

ruby-on-rails - Ruby on Rails 3 : Streaming data through Rails to client

python - SqlAlchemy:Postgresql 自定义类型数组