簡體   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