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

功能未实现:WINDOW / ORDER BY

姚兴安
2023-03-14
问题内容

我正在使用嵌入式Apache Derby数据库并执行以下查询:

SELECT 
    someUniqueValue, 
    row_number() over(ORDER BY someUniqueValue) as ROWID 
FROM 
    myTable;

someUniqueValue 是一个varchar。

我收到异常:

java.sql.SQLFeatureNotSupportedException:未实现的功能:WINDOW / ORDER BY

如果我将row_number()查询中的行更改为:

row_number() over() as ROWID

查询运行正常(尽管结果对我来说毫无用处)。

Derby文档指出此功能受支持。我究竟做错了什么?


问题答案:

您发布的链接只是一个草稿,用于指定应如何实现该功能。

如果向下滚动,您会发现:

从10.4.1.3版本开始,Derby中包括ROW_NUMBER()窗口函数的实现。 限制和用法说明可在《 Derby参考手册》中找到

然后,当您查看Derby手册(您的链接不是手册)http://db.apache.org/derby/docs/10.10/ref/rreffuncrownumber.html时,您会发现一些限制:

  • Derby当前不允许在OVER()子句中指定已命名或未命名的窗口规范,但是需要使用空括号。这意味着将在整个结果集中对函数进行评估。
  • ROW_NUMBER函数当前无法在WHERE子句中使用。
  • Derby当前在子查询中不支持ORDER BY,因此当前无法保证SELECT子查询中的行顺序。如果有严格的要求,则可以使用优化程序替代来强制优化程序使用在所需列上排序的索引。


 类似资料:
  • 我正试图让OpenCV在我的Ubuntu机器上使用Python。我已经下载并安装了OpenCV,但是当我尝试运行以下python代码时(应该从网络摄像头捕获图像并将其推送到屏幕上) 我得到以下错误: 所以我按照他们的要求去做:安装软件包,移动到我安装OpenCV的文件夹,然后运行 但是当我试图运行python时,它会给我同样的错误。我是不是漏了什么?

  • 问题内容: 我正在尝试让OpenCV在我的Ubuntu计算机上使用Python。我已经下载并安装了OpenCV,但是当我尝试运行以下python代码时(应该从网络摄像头捕获图像并将其推送到屏幕) 我收到以下错误: 因此,我按他们的要求做:安装软件包,从安装OpenCV的位置移动到该文件夹​​,然后运行 但是当我尝试运行python时,它给了我同样的错误。我想念什么吗? 问题答案: 如果使用gtk给

  • 问题内容: 我想知道这里发生了什么。 有一个http处理程序的接口: 我想我了解这种实现。 根据我的理解,“计数器”类型实现了接口,因为它具有一种具有所需签名的方法。到目前为止,一切都很好。然后给出这个例子: 有人可以详细说明为什么这些功能或如何将它们组合在一起吗? 问题答案: 这个: 说任何满足接口的类型都必须有一个方法。以上将在包装内。 这会将方法放在对应于ServeHTTP的Counter类

  • 本文向大家介绍React实现todolist功能,包括了React实现todolist功能的使用技巧和注意事项,需要的朋友参考一下 一、index.js 二、TodoList 1、constructor 2、render 3、getTodoList 4、事件函数 5、网络请求 使用Charles代理网络,安装证书,设置端口,在手机上面打开网络WIFI,设置代理IP和端口,这样就能监听到手机访问的网

  • 本文向大家介绍ajax实现修改功能,包括了ajax实现修改功能的使用技巧和注意事项,需要的朋友参考一下 这段时间在做项目,发现自己忘得好快呀,幸亏有博客园帮我记着呢,整理博客园简直不要太重要了哦 因为做的是一个内部管理系统,只用了一个主页面,所有的都不允许整个网页刷新,所以我们只能用ajax 来做,当然刚开始做也走了很多的弯路,最终还是做出来了 这点还是比较欣慰的 今天要整理一下ajax实现修改功

  • 本文向大家介绍Openlayers实现测量功能,包括了Openlayers实现测量功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Openlayers实现测量的具体代码,供大家参考,具体内容如下 由于公司项目需要使用到openlayers,就开始学习了openlayers,其中有一个需求需要用到测量功能,就参考《WebGisOpenlayers全面解析》写了一个小demo,话不多