在PostgreSQL中,可以从“with”中读取数据。我想知道如何在Rails中使用它,而不必将整个查询放入原始SQL中。
这是一个示例查询:完全是为了这个问题而编造的。
在我的真实示例中,得分不仅仅是1,但对于这个示例,它可以正常工作。
下面是我设想的代码。
这是一个示例查询:完全是为了这个问题而编造的。
with tasks as (select 1 as score, tasks.* from tasks)
select 1 from tasks where id > 10 order by tasks.score, tasks.id
在我的真实示例中,得分不仅仅是1,但对于这个示例,它可以正常工作。
下面是我设想的代码。
Task.with('tasks as (select 1 as score, tasks.* from tasks)')
.where('id > 10')
.order(score)
.order(id)
我不太喜欢使用“with”,因为它是PG数据库特定的,但我真的需要按照计算出的值进行排序。我尝试创建一个视图,但在PG中创建视图需要精确指定字段,而我不希望其他编码人员在修改源表时还需要修改视图。
我真的希望能够链式操作。