使用 MSAccess 中的 "DISTINCT" 关键字查询 DB2 表



我对链接的 DB2 表有一个相当简单的查询。

SELECT GC_TBSELC.*
FROM GC_TBSELC
WHERE SELC_EFF_DATE > #1/1/2017#;

工作正常,返回结果。 但是,当我添加"DISTINCT"关键字时,出现错误:

ODBC -- 呼叫失败

[[IBM][CLI 驱动程序][DB2] SQL0904N 由 不可用的资源。 原因代码:"00C90305",资源类型: "00000100"和资源名称:"DSNDB07"。 SQLSTATE=57011

关于为什么"DISTINCT"关键字会导致这种情况,以及是否有办法绕过它从表中获取不同的记录的任何想法?

SQL0904N with Reason code: 00C90305表示以下内容:

代理对工作文件存储的空间使用限制为 超过。空间使用限制由 zparm 关键字确定 最大温度。

通过在SELECT *(所有列(上添加DISTINCT子句,您可能会超出可用的工作空间。

让我问一个更好的问题:为什么要DISTINCT表中的所有列?这真的是您正在寻找的结果集吗? 在此表中DISTINCT列的子集是否更合适?

没有 DISTINCT 的查询不需要重复删除 - 行可以流式传输回调用方。

DISTINCT 告诉 Db2 - 在传回行之前删除重复项。 在这种情况下,Db2 可能将行具体化为排序工作并进行排序以删除重复项,在此过程中,超出了排序工作限制。

相关内容

  • 没有找到相关文章

最新更新