是否必须将“distinct”字段作为查询中的第一个字段?

时间:2013-08-20 03:48:48

标签: sqlite

出于好奇,看起来像distinct字段必须放在任何其他字段之前,我错了吗?

在SQLite中查看此示例,

sqlite> select ip, distinct code from parser; # syntax error?
Error: near "distinct": syntax error
sqlite> select distinct code, ip from parser; # works

为什么?我确实有语法错误吗?

1 个答案:

答案 0 :(得分:6)

没有“distinct字段”。

distinct适用于查询中的所有字段,因此必须在select之后立即显示。

换句话说,select distinct code, ip确实是

select distinct
code,
ip

而不是

select
distinct code,
ip

它选择所有不同的(code, ip)对。因此,结果集可能包含code的重复值(每个值都具有ip的不同值。)

无法以您尝试的方式将distinct应用于单个字段(group by可能是一个有用的替代方案,但我们需要了解您的具体内容)重新尝试实现)。