sql distinct缺少表达式



我有下面的查询,其中我返回了所有用户,但他们是具有相同TYPEUSER 的用户

select * from utilisateur ut where ut.TYPEUSER != 'classe' AND ut.TYPEUSER != 'user'

我尝试使用下面的查询通过TYPEUSER获取唯一用户,但它返回此错误ORA-00936: missing expression

select distinct ut.PRENOMUSER, * from utilisateur ut where ut.TYPEUSER != 'classe' AND ut.TYPEUSER != 'user'

Oracle允许select *。但是,如果选择其他列,则需要限定*。因此:

select distinct ut.PRENOMUSER, ut.*
from utilisateur ut
where ut.TYPEUSER <> 'classe' AND ut.TYPEUSER <> 'user';

这只是甲骨文的语法怪异之处之一。另一个原因是FROM子句中不允许使用as(无论如何我都不会使用它(。我认为这是因为Oracle是最古老的数据库,早于SQL标准。

在select子句中甚至不需要ut.PRENOMUSER。这无关紧要。

使用以下查询:

select distinct ut.*
from utilisateur ut
where ut.TYPEUSER <> 'classe' AND ut.TYPEUSER <> 'user';

最新更新