DISTINCT 子句用于非不同 select 错误

DISTINCT clause used on non-distinct select error

我想使用数据中的一个字段填充下拉框,我只想要从一个 table 中为一组数据返回唯一值。我正在使用的多面体数据库中没有实现分组依据。名称是 table 的主键,所有名称都是唯一的。

我正在尝试 运行 这个查询:

SELECT DISTINCT userstring05
FROM digital
WHERE userstring05 LIKE '_%'
  AND name LIKE '200-B%'

但是我得到这个错误:

DISTINCT clause used on non-distinct select

您不需要使用 distinct。使用 group by 获取结果。

SELECT userstring05 FROM digital WHERE userstring05 like '_%'
AND name LIKE '200-B%' GROUP BY userstring05

这将为您提供所要求的结果。我还没有测试它,因为你没有提供一些示例数据,但应该没问题

来自ENEA Polyhedra reference

Inclusion of the distinct clause will generate an error if the select statement could potentially return duplicate rows. Only select statements whose output columns include all the primary key columns of the tables specified in the from clause can be successfully executed with a distinct clause.

所以我猜这个 DBMS 并没有真正实现 distinct,因为这个约束使使用这个子句的兴趣无效。除非你在没有任何主键的情况下加入 table,也许 ?

编辑:好像这个资源是旧的。您使用的是哪个版本的 Polyhedra?