繁体   English   中英

sql oracle - 明显缺失的表达式

[英]sql oracle - distinct missing expression

我有以下查询,我返回所有用户,但他们是具有相同 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 其他列,你需要限定* 所以:

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

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

您甚至不需要ut.PRENOMUSER子句中的 ut.PRENOMUSER 。 这是无关紧要的。

使用以下查询:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM