加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – PostgreSQL虚拟列列不存在?

发布时间:2020-12-17 04:26:18 所属栏目:百科 来源:网络整理
导读:使用PostgreSQL 8.4,我试图将以下查询放在一起: SELECT (field_a + field_b + field_c) AS virtual_field,*FROM "entities" WHERE ("entities".thing_id = 9999 AND (virtual_field 0)) AND (boolean_field = 't') ORDER BY virtual_field DESC 不幸的是,我
使用PostgreSQL 8.4,我试图将以下查询放在一起:
SELECT (field_a + field_b + field_c) AS virtual_field,*
FROM "entities" 
WHERE ("entities".thing_id = 9999 AND (virtual_field > 0)) 
AND (boolean_field = 't') 
ORDER BY virtual_field DESC

不幸的是,我一直收到以下错误:

PGError: ERROR:  column "virtual_field" does not exist
LINE 1: ...ies" ("entities".thing_id = 9999 AND (virtual_fiel...
                                                 ^

错误信息非常明显,但如果我能找出正在尝试做的正确语法,我会被诅咒. field_a,field_b和field_c都是我的实体表中的实数列.

作为参考,我使用Rails(2.3.11)来编写查询.这是我正在使用的(匿名)代码:

Thing.entities.boolean_scope.find(:all,:select     => "(field_a + field_b + field_c) AS virtual_field,*",:conditions => ['virtual_field > ?',value],:order      => 'virtual_field DESC'
)

我的大脑让我失望了 – 任何人都可以帮助我搞清楚吗?

解决方法

您不能像WHERE子句那样使用SELECT子句中的别名(如此处的virtual_prices).

您可以在ORDER BY中使用它们,但不能在WHERE中使用它们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读