当前位置: 首页 > 面试题库 >

在SqlAlchemy SQLite中的联合查询中按列排序

鞠建安
2023-03-14
问题内容

如本问题所述,您可以order byunionS中使用字符串文字。

例如,这适用于Oracle:

querypart1 = select([t1.c.col1.label("a")]).order_by(t1.c.col1).limit(limit)
querypart2 = select([t2.c.col2.label("a")]).order_by(t2.c.col2).limit(limit)
query = querypart1.union_all(querypart2).order_by("a").limit(limit)

order-by可以采用字符串文字,这是联合结果中列的名称。

(分区表中有成千上万的行,我正试图对那些该死的东西进行分页)

但是,当针对SQLite3运行时,这会生成一个异常:

sqlalchemy.exc.OperationalError: (OperationalError) near "ORDER": syntax error

您如何order by获得a的结果union


问题答案:

联合查询中的查询不能排序

为了能够在复合查询中使用限制,必须将单个查询包装在单独的子查询中:

SELECT * FROM (SELECT ... LIMIT ...)
UNION ALL
SELECT * FROM (SELECT ... LIMIT ...)



q1 = select(...).limit(...).subquery()
q2 = select(...).limit(...).subquery()
query = q1.union_all(q2)...


 类似资料:
  • 问题内容: 每个表(表1和表2)都有其自己的DATETIME字段。 我正在尝试捕获两个表的ID,并按其DATETIME字段对其进行排序。 例子: 我的输出未通过以下查询正确排序: 所需数据: 来自表2 id:2、1, 来自表1 id:3、2、1 因此:2、1、3、2、1 ////编辑 对于可能会遇到冗长而复杂的MySQL请求的人们,请在PhpmyAdmin中尝试一下!它会告诉您错误! ////编辑

  • 问题内容: 我正在使用Postgres 9.4寻找一种在查询中合并两个(或更多)或列的方法。以下表为例: 查询是否可能返回以下内容: 不幸的是,我无法按此处所述定义函数。使用“传统”查询是否有可能? 问题答案: 这是可用于在PostgreSQL中创建json对象的内置函数的完整列表。http://www.postgresql.org/docs/9.4/static/functions- json.

  • 我在读一本书的时候遇到了这句话: 我是Apache Jena的新手,所以这让我想到这么大的图联合是在内存中发生的吗? 因此,我使用TDB存储我的图,并使用SPARQL查询它们,我想查询“在多个FROM子句中给定的2个特定图的图联合”或“所有命名图的图联合”: 这些联合是否会发生在我的Java代码中的内存中,我使用ARQ查询TDB??

  • 我需要从表中选择所有的vip并按兰德排序,然后添加按日期排序的其他数据。在第一个子查询中,一切正常,但在第二个子查询中,spa_date DESC不起作用。我知道UNION子查询中的ORDER BY子句会被忽略而没有限制(但ORDER BY rand()起作用),但我需要所有查询(1+2)中的限制,而不是子查询中的限制 问题: 我需要选择spa_vip=1的所有spa_id并按RAND()排序,然

  • 问题内容: 在查询中引入ORDER BY子句会增加总时间,这是因为数据库需要对排序结果集进行额外的工作: 将结果元组复制到一些临时内存中 对它们进行排序(希望在内存中,否则使用磁盘) 将结果流式传输到客户端 我想念的是为什么仅从联接表中添加列会产生如此不同的性能。 查询1 查询计划 查询2 与上述相同,但不按 查询计划 编辑:添加了更多详细信息 Postgres版本是 8.4 问题答案: 在排序操

  • 问题内容: 我在使用JPA Criteria API构建查询时遇到问题。 实体和重要属性: 我需要一个查询,该查询将返回数据库中按评论数(在中)排序的所有帖子。起初,我认为可以通过以下方式实现: 但是功能不能用于在中对其进行排序。 因此,我发现了有关,并尝试了以下操作: 通过此查询,我没有得到正确的结果。我知道我缺少设置的“注释”,但是不知道如何添加该部分。我不是很熟悉。该查询应如何使所有帖子按其